webui展示

功能
监控netcup服务器是否限速。
如果限速,自动删除qb下载器里种子后关闭qb下载器,vt任务无法将种子添加进入该被限速机器的qb。
解除限速,自动开启qb下载器。
白名单:该服务器的qb下载器不受自动控制,只监控限速情况。
限速状态发生变化时发送通知,支持telegram机器人和IYUU两种通知方式。
支持同时添加多个scp账户,支持一个scp账号下多台服务器控制,但每台服务器只支持一个qb下载器。
部署
ssh连接机器
创建项目文件夹nc-traffic-monitor
mkdir nc-traffic-monitor移动到项目文件夹
cd nc-traffic-monitornc-traffic-monitor该文件夹下创建data文件夹
mkdir datanc-traffic-monitor该文件夹下创建config.json
vi config.json输入
i进入文本编辑模式复制粘贴自己的配置文件(建议提前丢给AI或者到任意一个json验证网站验证格式问题)
按键
Esc退出编辑模式输入
:wq保存配置文件nc-traffic-monitor该文件夹下创建docker-compose.yml文件
vi docker-compose.yml输入
i进入文本编辑模式复制粘贴compose文件内容
按键
Esc退出编辑模式输入
:wq保存文件执行
docker compose up -d
配置文件解析
"monitoring": {
"update_interval": 300, //nc限速情况查询频率,以秒为单位
"retry_interval": 60, //查询失败重试间隔时间,以秒为单位
"log_level": "INFO", //日志级别,INFO DEBUG
"auto_control": true //是否启用自动开启和关闭下载器,不需要自动管理可改为false
}
"accounts": [
{
"name": "账户名称1", //随便填写,可以看作账户的别名
"api_credentials": {
"loginname": "你的scp登录名", //scp账号登录名
"password": "你的scp密码" //scp账号密码
},
"servers": [ //scp账号下面的具体服务器信息
{
"ip": "服务器IP地址",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
//qb的类型,两个选项:"systemd"和"docker"
//选项systemd代表qb以系统服务运行大概率脚本安装,选项docker代表qb容器部署
"control_type": "systemd",
// ssh命令行执行 systemctl list-units --all | grep qbittorrent 找到qb对应服务名称形如[email protected]
// ssh命令行执行 docker ps -a 查看qb对应docker名称
"control_target": "服务名称,如 [email protected]",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
// docker类型qb需要映射实际的文件路径,systemd类型无需映射,内部留空形如"path_mapping": {}。冒号前面为docker内部路径,冒号后面为文件实际绝对路径
"path_mapping": {
"/downloads": "/root/downloads"
},
"excluded_categories": ["保留的分类1", "保留的分类2"] //没有需要保留的分类留空 形如"excluded_categories": []
},
{
"ip": "另一台服务器IP",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "docker",
"control_target": "容器名称,如 qb4747",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"path_mapping": {},
"excluded_categories": ["保留的分类1", "保留的分类2"]
}
]
},
"notifications": {
"telegram": {
"enabled": true, //是否启用,不启用改为false
"bot_token": "你的Telegram Bot Token",
"chat_id": "你的Telegram Chat ID"
},
"iyuu": {
"enabled": true, //是否启用,不启用改为false
"token": "你的IYUU Token"
}
},
"web": {
"username": "admin", //web界面的账号
"password": "password" //web界面的密码
}
"proxy": {
"enabled": false, //关于限速通知,是否开启网络代理,支持http代理和SOCKS代理
"proxy_address": "http://192.168.31.204:7899", //代理地址
"proxy_username": "", //代理账号,没有留空
"proxy_password": "" //代理密码,没有留空
}
使用
tg机器人可以通过菜单交互查询所有服务器状态、添加白名单和删除白名单
webui 通过点击具体服务器白名单位置添加白名单和删除白名单
config.json模板如下:
{
"monitoring": {
"update_interval": 300,
"retry_interval": 60,
"log_level": "INFO",
"auto_control": true
},
"accounts": [
{
"name": "账户名称1",
"api_credentials": {
"loginname": "你的scp登录名",
"password": "你的scp密码"
},
"servers": [
{
"ip": "服务器IP地址",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "systemd",
"control_target": "服务名称,如 [email protected]",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"path_mapping": {},
"excluded_categories": ["保留的分类1", "保留的分类2"]
},
{
"ip": "另一台服务器IP",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "docker",
"control_target": "容器名称,如 qb4747",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"path_mapping": {
"/downloads": "/root/downloads"
},
"excluded_categories": ["保留的分类1", "保留的分类2"]
}
]
},
{
"name": "账户名称2",
"api_credentials": {
"loginname": "另一个账户的登录名",
"password": "另一个账户的密码"
},
"servers": [
{
"ip": "第三台服务器IP",
"ssh_port": 22,
"ssh_username": "root",
"ssh_password": "root密码",
"control_type": "docker",
"control_target": "qb4747",
"qb_url": "http://服务器IP:端口",
"qb_username": "qBittorrent登录用户名",
"qb_password": "qBittorrent登录密码",
"path_mapping": {
"/downloads": "/root/downloads"
},
"excluded_categories": ["保留的分类1", "保留的分类2"]
}
]
}
],
"notifications": {
"telegram": {
"enabled": true,
"bot_token": "你的Telegram Bot Token",
"chat_id": "你的Telegram Chat ID"
},
"iyuu": {
"enabled": true,
"token": "你的IYUU Token"
}
},
"web": {
"username": "admin",
"password": "password"
},
"proxy": {
"enabled": false,
"proxy_address": "http://192.168.31.204:7899",
"proxy_username": "",
"proxy_password": ""
}
}
compose文件如下:
services:
nc-traffic-monitor:
image: guyuanwind/nc-traffic-monitor:latest
container_name: nc-traffic-monitor
restart: unless-stopped
# 端口映射
ports:
- "4949:4949" # Web界面端口
# 环境变量
environment:
- TZ=Asia/Shanghai
- PYTHONUNBUFFERED=1
# 挂载配置文件、数据目录
volumes:
- ./config.json:/app/config.json:ro # 只读挂载配置文件
- ./data:/app/data # 数据目录(状态文件和日志)
- /etc/localtime:/etc/localtime:ro # 挂载主机时区文件
# 网络模式
networks:
- nc-monitor-network
networks:
nc-monitor-network:
driver: bridge
更新记录
1.0.1
基本的监控功能和qb管理功能
2.0.1
配置文件添加网络代理和路径映射尽量保证文件删除干净
"proxy": {
"enabled": false,
"proxy_address": "http://192.168.31.204:7899",
"proxy_username": "",
"proxy_password": ""
}
"path_mapping": {
"/downloads": "/root/downloads"
},
如果有bug建议先更新镜像重新启动或者可以留言反馈
docker compose down
docker compose pull
docker compose up -d
评论