Django iKuai Behavioral Control (Django iKuai行为控制)是一个基于 Django 的网络行为管理和控制的 Web 应用程序。该项目专为 iKuai 爱快路由器设备设计,提供了一个用户友好的界面,用于处理复杂的路由管理任务。目前支持的 爱快固件 版本为免费版iKuai8_3.7.11_Build202403051040.
- 实现家庭中所有设备网络访问权限的基本控制
- 借助爱快内置的协议控制(acl_l7),有效防止未成年人访问或沉迷各类游戏和短视频
- 提供快速设置的webui,弥补爱快Web界面上快速设置时间范围等功能缺失
- 设备管理:注册并管理网络中连接的设备。
- 协议控制:为设备定义和执行网络协议,设置设备在不同时间不同优先级允许/不允许使用的网络协议。
- 域名黑名单:管理并执行网络安全和控制的域名黑名单。
- Docker 和 Docker Compose
在可以访问本地爱快路由器的设备上进行以下操作:
-
克隆仓库:
git clone https://github.com/dzhuang/django_ikuai_behavioral_control.git
-
准备 Docker Compose 文件:
- 导航到克隆的仓库目录。
- 复制
docker-compose-example.yml
文件并将副本重命名为docker-compose.yml
。cp docker-compose-example.yml docker-compose.yml
- 根据您的环境和需求修改
docker-compose.yml
文件。这可能包括设置卷路径、环境变量和其他 Docker 配置,详见后面的docker-compose.yml
文件中的配置说明。
-
拉取 Docker 镜像:
docker pull dzhuang/ikuai_behavioral_control
-
启动应用程序:
- 使用 Docker Compose 启动应用程序:
docker-compose up
- 该命令读取您刚刚准备的
docker-compose.yml
文件,并根据其配置启动应用程序。数据库迁移作为应用程序启动过程的一部分自动执行。
- 使用 Docker Compose 启动应用程序:
-
添加爱快路由器:
访问http://127.0.0.1/admin
进入管理界面,用户名和密码为 DJANGO_SUPERUSER_USERNAME
和 DJANGO_SUPERUSER_PASSWORD
。 在MY_ROUTER
中添加爱快路由器,其中,url为爱快路由器的Url,管理员用户名和管理员密码为爱快路由的相应设置.
访问 http://127.0.0.1/
. 注意,对设备的协议控制,应从MAC分组操作开始,即使是单一的设备,也应设制MAC分组.
以下的项目必须修改,以保证安全。
设置项 | 描述 |
---|---|
DJANGO_SUPERUSER_USERNAME |
Django 超级用户的用户名,用于创建初始管理员账户。 |
DJANGO_SUPERUSER_PASSWORD |
Django 超级用户的密码。 |
DJANGO_SUPERUSER_EMAIL |
Django 超级用户的电子邮件地址。 |
BEHAVIORAL_CONTROL_SERVER_SECRET_KEY |
Django 应用的秘密密钥,用于安全性关键的操作,如会话、签名等。应保持秘密。 |
BEHAVIORAL_CONTROL_ALLOWED_HOST_ |
重要:以此开头的键名表示允许访问应用的主机名或IP地址,对应于Django设置中的 ALLOWED_HOSTS 。键值不需要包含scheme,应包含该网站的主机域名和实例的本地ip。例如:BEHAVIORAL_CONTROL_ALLOWED_HOST_router=foo.com 和 BEHAVIORAL_CONTROL_ALLOWED_HOST_local=192.168.9.1 。 |
BEHAVIORAL_CONTROL_CSRF_TRUSTED_ORIGINS_ |
重要:以此开头的键名表示可信的来源域名或IP,用于 CSRF 验证,对应于Django设置中的 CSRF_TRUSTED_ORIGINS。键值中必须包含scheme(如 http:// 或 https:// )。应包含该网站的域名访问方式和实例的本地ip访问方式,例如示例中的:BEHAVIORAL_CONTROL_CSRF_TRUSTED_ORIGINS_router=https://foo.com 和 BEHAVIORAL_CONTROL_CSRF_TRUSTED_ORIGINS_local=http://192.168.9.1 。 |
behavioral_control_service 服务
其它的设置还包括:
设置项 | 描述 |
---|---|
BEHAVIORAL_CONTROL_SERVER_LANGUAGE_CODE |
应用的默认语言代码,例如 zh-hans 表示简体中文。 |
BEHAVIORAL_CONTROL_SERVER_TZ |
应用服务器的时区设置,例如 Asia/Shanghai 。 |
BEHAVIORAL_CONTROL_SERVER_DB_HOST |
数据库服务器的主机名,例如 postgres_db_service 表示 Docker Compose 中定义的 PostgreSQL 服务名称,不要随意修改。 |
BEHAVIORAL_CONTROL_SERVER_DB_PORT |
数据库服务器的端口,通常 PostgreSQL 默认为 5432 。 |
BEHAVIORAL_CONTROL_SERVER_DB_USER |
用于数据库连接的用户名。 |
BEHAVIORAL_CONTROL_SERVER_DB_PASSWORD |
用于数据库连接的密码。 |
BEHAVIORAL_CONTROL_SERVER_DB |
数据库的名称,用于存储应用数据。 |
BEHAVIORAL_CONTROL_SERVER_REDIS_LOCATION |
Redis 服务的连接位置,格式为 redis://redis_service:6379 。用于配置与 Redis 实例的连接,不要随意修改。 |
RABBITMQ_HOST |
RabbitMQ 服务的主机名,用于消息队列服务。应与rabbit 服务 中的hostname 一致. |
RABBITMQ_USER |
连接 RabbitMQ 服务的用户名。应与rabbit 服务 中的environment 对应项目一致. |
RABBITMQ_PASSWORD |
连接 RabbitMQ 服务的密码。应与rabbit 服务 中的environment 对应项目一致. |
BEHAVIORAL_CONTROL_SERVER_DEBUG |
控制 Django 应用的调试模式是否启用,生产环境中应设置为 off 。默认为 off . |
设置项 | 描述 |
---|---|
POSTGRES_USER |
PostgreSQL 数据库的用户名,必须与 behavioral_control_service 服务 中的BEHAVIORAL_CONTROL_SERVER_DB_USER 相同。 |
POSTGRES_PASSWORD |
PostgreSQL 数据库的密码,必须与 behavioral_control_service 服务 中的BEHAVIORAL_CONTROL_SERVER_DB_PASSWORD 相同。 |
POSTGRES_DB |
PostgreSQL 数据库的名称,必须与 behavioral_control_service 服务 中的BEHAVIORAL_CONTROL_SERVER_DB 相同。 |
设置项 | 描述 |
---|---|
RABBITMQ_DEFAULT_USER |
RabbitMQ 服务的默认用户名,必须与 behavioral_control_service 服务 中的 RABBITMQ_USER 相同。 |
RABBITMQ_DEFAULT_PASS |
RabbitMQ 服务的默认密码,必须与 behavioral_control_service 服务 中的 RABBITMQ_PASSWORD 相同。 |
该服务中列出的environment
项目的设置,应与behavioral_control_service 服务
中对应的项目一致,所以仍然需要手动重启docker-compose.
监控并自动更新ikuai_behavioral_control服务
,目前存在bug:无法删除旧的image并使用新image创建容器.
欢迎对 Django iKuai 行为控制项目做出贡献!请参阅 CONTRIBUTING.md 文件,了解如何为此项目贡献您的力量。
该项目根据 MIT 许可证授权 - 详情请见 LICENSE.txt 文件。