安装了watchtower,如何让qbittorrent不被watchtower自动更新
为何建议将qbittorrent安装在macvlan网络上
将qbittorrent安装在macvlan网络上时,如何使用IYUUAutoReseed自动辅种
如何使用 CRON_ALTER_LIMITS 这个环境变量
如何使用 CRON_IYUU_HELP 这个环境变量
qBittorrent使用https的webui时,iyuu如何连接
qBittorrent占用了巨大的内存,如何调整
qB老是不监听IPv6地址,怎么办?
自动运行的命令(所有标签可用,由设置的cron或在下载完成时自动运行,当然也可以手动运行)
需要手动运行的命令(所有标签可用)
仅“iyuu”标签可用的命令
源代码、问题反馈、意见建议
为保证用户安全,防止用户因使用反代并代理了127.0.0.1这种情况导致安全性降低,从2023年9月5日更新的镜像开始,创建容器需要新增设置两个环境变量:QB_USERNAME(登陆qBittorrent的用户名)和QB_PASSWORD(登陆qBittorrent的密码)。容器将在创建时使用这两个环境变量去设置(如已存在配置文件则是修改)登陆qBittorent的用户名和密码。如未设置这两个环境变量,或者保持为qBittorrent的默认值(默认用户名:admin,默认密码:adminadmin),则本容器附加的所有脚本、定时任务将无法继续使用。
详情
。也因此镜像默认即安装好python,不再需要设置
INSTALL_PYTHON
这个环境变量。
本镜像非魔改版、非快验版、非Enhanced增强版,qBittorrent自身的行为/功能全部未做任何改动(也不会考虑添加或修改官方客户端行为/功能的内容),全部属于官方客户端的默认行为/功能,在和PT站Tracker服务器交互时反馈的一切信息均是qBittorrent官方版反馈的信息。本镜像只是基于官方客户端附加了一些实用的脚本,脚本全部是合理合法使用qBittorrent官方API获取信息,脚本全部行为都集中在本地,与任何远端服务器无任何联系。增加的脚本全部代码在
Github
或
Gitee
均可查看 。绝对不会因为使用此镜像而导致账号被封。
下载完成发送通知(
可以选择关闭
),可选途径:钉钉(
效果图
), Telegram, ServerChan, 爱语飞飞, PUSHPLUS推送加, 企业微信, Gotify;搭配RSS功能(
RSS教程
)自动下载效果很好;下载完成后还可以补充运行你的自定义脚本。
故障时发送通知,可选途径同上。
按设定的cron检查tracker状态,如发现种子的tracker状态有问题,将给该种子添加
TrackerError
的标签,方便筛选;如果tracker出错数量超过设定的阈值,给设定渠道发送通知。
一些辅助功能:批量修改tracker;检测指定文件夹下未做种的子文件夹/文件;生成做种文件清单;生成未做种文件清单;配合IYUU自动重新校验和自动恢复做种;指定设备上线时自动限速;多时段限速;分析指定目录的重复做种率(辅种率)等等。
如需要下载完成后自动触发EMBY/JELLYFIN扫描媒体库,触发ChineseSubFinder自动为刚刚下载完成的视频自动下载字幕,请按照
这里
操作。
python
为可选安装项,设置为
true
就自动安装。
(从2023年9月5日起,默认安装好python,不再需要设置这一项。)
体积小,默认中文UI,默认东八区时区。
iyuu
标签集成了
IYUUPlus
,自动设置好下载器,减少IYUUPlus设置复杂程度。
4.x.x
,
latest
: 标签以纯数字版本号命名,这是qBittorrent正式发布的稳定版,其中最新的版本额外增加
latest
标签。
4.x.x-iyuu
,
latest-iyuu
,
iyuu
: 标签中带有
iyuu
字样,基于qBittorrent稳定版集成了
IYUUPlus
,其中最新的版本额外增加
latest-iyuu
和
iyuu
标签,自动安装好
IYUUPlus
,自动设置好下载器,主要针对不会设置下载器的用户。
x.x.xalphax
,
x.x.xbetax
,
x.x.xrcx
,
unstable
: 标签中带有
alpha
、
beta
或
rc
字样,这是qBittorrent发布的测试版,其中最新的测试版额外增加
unstable
标签。此标签仅供测试使用及向qBittorrent官方反馈bug使用。
edge
: 基于
alpine:edge
制作的镜像,体积最小,所依赖的组件版本最新,会提供
riscv64
版本镜像。
所有新功能或者BUG修复,或者有任何变化时,都会第一时间更新到此标签。
更新日志(仅列出稳定版)
qBittorrent
libtorrent
alpine
1.2.14
3.14.0
1. 增加5个环境变量控制开关,详见
环境变量清单
;
2. 增加批量修改 tracker的功能,详见
命令
;
3. 增加在运行
dl-finish %K
时运行自定义脚本的功能,详见
相关问题2
。
2021-08-30
4.3.8
1.2.14
3.14.2
1. 增加3个环境变量控制开关,详见
环境变量清单
;
2. 增加检测指定目录未做种的子文件夹/文件功能,详见
命令
。
2021-11-01
4.3.9
1.2.14
3.14.2
修复通知内容中含有字符"&“时无法正常发送的bug。
2022-01-07
4.4.0
2.0.5
3.14.3
1. 增加环境变量
EXTRA_PACKAGES
,详见
环境变量清单
;
2. 默认运行自动分类程序时仅对未分类的种子进行分类,如需要强制对所有种子进行分类,请参考
命令
;
3. 增加两个需要手动运行的脚本
report-seed-files
(导出所有做种文件清单)和
report-unseed-files
(导出指定文件夹下未做种文件清单),详见
命令
。
2022-02-16
4.4.1
2.0.5
3.14.3
2022-03-25
4.4.2
2.0.5
3.14.4
2022-05-24
4.4.3
2.0.6
3.16.0
1. 修复存在多个标签时无法移除
TrackerError
标签的bug;2. 增加企业微信群机器人的通知渠道。3. 升级openssl到1.1.1o,boost到1.78,alpine到3.16.0,升级iyuu镜像中的php7为php8。
2022-05-26
4.4.3.1
2.0.6
3.16.0
2022-08-24
4.4.4
2.0.7
3.16.2
1. 增加
remove-track
脚本,详见
命令
;2. 优化
del-unseed-dir
脚本,现还可以一次性检测多个目录了;3. 增加Gotity通知环境变量
GOTIFY_URL
GOTIFY_APP_TOKEN
GOTIFY_PRIORITY
,详见
环境变量清单
。
2022-08-31
4.4.5
2.0.7
3.16.2
2022-10-24
4.4.5
2.0.8
3.16.2
libtorrent-rasterbar v2.0.8 修复了内存溢出的问题,因此更新一下qbittorrent。
2022-11-09
4.3.9
1.2.18
3.16.2
添加
CATEGORY_OR_TAG
环境变量,详见
环境变量清单
;考虑到4.3.9将是许多人的使用版本,将全部新功能重新应用到4.3.9版本中。
2022-11-26
4.3.94.5.0
1.2.182.0.8
3.17.0
alpine升级至3.17.0,升级依赖版本为:boost 1.80.0, openssl 3.0.7, qt 5.16.6, zlib 1.2.13
2022-11-30
4.5.0
1.2.18
3.17.0
把依赖项
libtorrent-rasterbar
从
2.0.8
切换为
1.2.18
,应用
#17994.patch
修复
4.5.0
版本简体中文无法启用的bug,需要先切换为英文再切换为中文,或者在启动容器前先将
config/qBittorrent.conf
中
General\Locale
这一行从
zh
改为
zh_CN
。
2023-02-13
4.5.1
1.2.18
3.17.2
1. 根据版本的不同自动设置
General\Locale
为
zh
或
zh_CN
;2. 优化
auto-cat
report-unseed-files
tracker-error
逻辑,加快运行速度,对多tracker的,只要有一个正常就不标记为
TrackerError
(有任何一个tracker处于
工作``更新中
和
未联系
都不会视作
TrackerError
,只有在运行脚本当时那一刻全部tracker处于
未工作
才会标记);3. 切换为qt6并增加依赖
qt6-qtbase-sqlite
;4. 修复
#68
,
#69
。
2023-02-28
4.5.2
2.0.8
3.17.2
1. libtorrent-rasterbar切换为2.x;2. 再一次优化
tracker-error
减少70%时长。
2023-05-29
4.5.3
2.0.9
3.18.0
1. 再一次优化
report-seed-files
减少70%时长;2.
dl-finish
不再使用
%I
传参,而使用
%K
,已经部署好的使用
%I
也没有问题(除非会有混合种子或v2种子);3. 增加
gen-dup
脚本,详见“命令”章节。
2023-06-19
4.5.4
2.0.9
3.18.2
gen-dup
脚本增加总计输出。
2023-08-30
4.5.5
2.0.9
3.18.3
抛弃
s6-overlay
,直接交给
tini
来捕获退出信号,在退出/停止容器时qB会自动保存配置和种子进度。定时任务改由低权限运行,日志记录在容器内的
/data/diy/crond.log
,不再输出到容器控制台。
2023-09-06
4.5.5
2.0.9
3.18.3
为保证用户安全,防止用户因使用反代并代理了127.0.0.1这种情况导致安全性降低,从2023年9月5日更新的镜像开始,创建容器需要新增设置两个环境变量:QB_USERNAME(登陆qBittorrent的用户名)和QB_PASSWORD(登陆qBittorrent的密码)。容器将在创建时使用这两个环境变量去设置(如已存在配置文件则是修改)登陆qBittorent的用户名和密码。如未设置这两个环境变量,或者保持为qBittorrent的默认值(默认用户名:admin,默认密码:adminadmin),则本容器附加的所有脚本、定时任务将无法继续使用。
详情
。也因此镜像默认即安装好python,不再需要设置
INSTALL_PYTHON
这个环境变量。
2023-10-23
4.6.0
2.0.9
3.18.4
2023-11-21
4.3.94.6.1
2.0.9
3.18.4
增加一个环境变量
TG_API_HOST
,同时允许关闭
CRON_HEALTH_CHECK
和
CRON_TRACKER_ERROR
,此三项环境变量说明详见
环境变量清单
。从此版本起,qBittorrent官方已经设置禁止默认密码,因此请务必设置
QB_USERNAME
和
QB_PASSWORD
为非默认值。同步编译的
4.3.9
版本亦可使用新版本可用的环境变量。
2023-11-28
4.6.2
2.0.9
3.18.4
修复
UMASK_SET
。
2024-01-17
4.6.3
2.0.9
3.19.0
iyuu
相关标签将php升级到8.3.x。
2024-03-25
4.6.4
2.0.10
3.19.1
2024-05-27
4.6.5
2.0.10
3.20.0
因
IYUUPlus
调整了架构,从此版本起,不再构建集成了
IYUUPlus
的标签。
2024-08-20
4.6.6
2.0.10
3.20.2
2024-09-17
4.6.7
2.0.10
3.20.3
下载完成通知也可以设置为下载开始通知,通知中添加主机名。
2024-10-08
5.0.0
2.0.10
3.20.3
修改
iyuu-help
脚本以适应5.0.0带来的API接口变化。
环境变量清单
在下一节的创建命令中,包括已经提及的变量在内,总共以下环境变量,请根据需要参考创建命令中
WEBUI_PORT
BT_PORT
的形式自行补充添加到创建命令中。
注1:默认值的含义是,你不设置这个环境变量为其他值,那么程序就自动使用默认值。
注2:所有定时任务cron类的环境变量(以
CRON
这四个字母开头的)在docker cli中请用一对双引号引起来,在docker-compose中不要增加引号。
注3:
QB_USERNAME
和
QB_PASSWORD
必须改成非默认值,除此以外,其余所有环境变量你都可以不设置,并不影响qbittorrent的使用
,但如果你想用得更爽,你就根据你的需要设置。
以下是所有标签均可用的环境变量:
INSTALL_PYTHON
false
从4.5.5起,默认安装好python,不再需要设置这个环境变量。
默认不安装python,如需要python(qBittorrent的搜索功能必须安装python),请设置为
true
,设置后将在首次启动容器时自动安装好。
ENABLE_AUTO_CATEGORY
false
4.3.7+可用。是否自动按tracker进行分类,设置为
true
开启(从4.6.5+起默认值为
false
,4.6.4-的默认值为
true
)。
CATEGORY_OR_TAG
category
4.3.9及4.5.0+可用,当
ENABLE_AUTO_CATEGORY=true
时,控制自动分类是qBittorrent中的“分类”还是“标签”。设置为
category
(默认值)为“分类”,设置为
tag
为“标签”。当设置为
tag
时,由于标签不是唯一的,无法筛选出没有打上tracker标签的种子,所以运行
auto-cat -a
和
auto-cat -A
都将对全部种子按tracker打标签,种子多时比较耗时;而当设置为
category
时,运行
auto-cat -a
就只对未分类种子进行分类。
DL_FINISH_NOTIFY
false
是否在下载完成时向设定的通知渠道发送种子下载完成的通知消息,设置为
true
开启(从4.6.5+起默认值为
false
,4.6.4-的默认值为
true
)。
TRACKER_ERROR_COUNT_MIN
4.3.7+可用。可以设置的值:正整数。在检测到tracker出错的种子数量超过这个阈值时,给设置的通知渠道发送通知。
UMASK_SET
权限掩码
umask
,指定qBittorrent在建立文件时预设的权限掩码。
TG_USER_ID
通知渠道telegram,如需使用需要和 TG_BOT_TOKEN 同时赋值,私聊 @getuseridbot 获取。
TG_BOT_TOKEN
通知渠道telegram,如需使用需要和 TG_USER_ID 同时赋值,私聊 @BotFather 获取。
TG_PROXY_ADDRESS
4.3.7+可用。给TG机器人发送消息的代理地址,当设置了
TG_USER_ID
和
TG_BOT_TOKEN
后可以设置此值,形如:
http://192.168.1.1:7890
,也可以不设置。
TG_PROXY_USER
4.3.7+可用。给TG机器人发送消息的代理的用户名和密码,当设置了
TG_PROXY_ADDRESS
后可以设置此值,格式为:
<用户名>:<密码>
,形如:
admin:password
,如没有可不设置。
TG_API_HOST
4.6.1+可用。Telegram 的反代 API,如果设置了就改为向你的反代 API 发送消息,不设置则向官方 API 发送消息。
DD_BOT_TOKEN
通知渠道钉钉,如需使用需要和 DD_BOT_SECRET 同时赋值,机器人设置中webhook链接
access_token=
后面的字符串(不含
=
以及
=
之前的字符)。
DD_BOT_SECRET
通知渠道钉钉,如需使用需要和 DD_BOT_TOKEN 同时赋值,机器人设置中
只启用
加签
,加签的秘钥,形如:
SEC1234567890abcdefg
。
IYUU_TOKEN
通知渠道爱语飞飞,通过
这里
获取,爱语飞飞的TOKEN。
SCKEY
通知渠道ServerChan,通过
这里
获取。
PUSHPLUS_TOKEN
4.3.7+可用。通知渠道PUSH PLUS,填入其token,详见
这里
。
WORK_WECHAT_BOT_KEY
4.3.9及4.4.3+可用。通知渠道企业微信群机器人,填入机器人设置webhook链接中
key=
后面的字符串,不含
key=
。
GOTIFY_URL
4.3.9及4.4.4+可用。通知渠道Gotify,填入其通知网址,需要和
GOTIFY_APP_TOKEN
同时赋值。
GOTIFY_APP_TOKEN
4.3.9及4.4.4+可用。通知渠道Gotify,填入其TOKEN,需要和
GOTIFY_URL
同时赋值。
GOTIFY_PRIORITY
4.3.9及4.4.4+可用。通知渠道Gotify,发送消息的优先级。
CRON_HEALTH_CHECK
12 * * * *
宕机检查的cron,在设定的cron运行时如发现qbittorrent-nox宕机了,则向设置的通知渠道发送通知。
4.6.1+可以设置为
off
,意为关闭此定时任务。
CRON_AUTO_CATEGORY
32 */2 * * *
自动分类的cron,在设定的cron运行
auto-cat -a
命令,将所有
未分类
种子按tracker分类(当
CATEGORY_OR_TAG=category
时),或将所有种子按tracker打标签(当
CATEGORY_OR_TAG=tag
时)。对于种子很多的大户人家,建议把cron频率修改低一些,一天一次即可。此cron可以由
ENABLE_AUTO_CATEGORY
关闭,关闭后不生效。虽然本变量是全版本有效,但控制采用“分类”还是“标签”的变量
CATEGORY_OR_TAG
仅4.3.9和4.5.0+有效。
CRON_TRACKER_ERROR
52 */4 * * *
检查tracker状态是否健康的cron,在设定的cron将检查所有种子的tracker状态,如果有问题就打上
TrackerError
的标签。在运行的时候比较吃资源,所以对于种子很多的大户人家,或者是对此不那么敏感的用户,建议把cron频率修改低一些,一天一次即可。
4.6.1+可以设置为
off
,意为关闭此定时任务。
MONITOR_IP
4.3.8+可用。可设置为局域网设备的ip,多个ip以半角空格分隔,形如:
192.168.1.5 192.168.1.9 192.168.1.20
。本变量作用:当检测到这些设置的ip中有任何一个ip在线时(检测频率为每分钟),自动启用qbittorent客户端的“备用速度限制”,如果都不在线就关闭“备用速度限制”。“备用速度限制”需要事先设置好限制速率,建议在路由器上给需要设置的设备固定ip。在docker cli中请使用一对双引号引起来,在docker-compose中不要使用引用。
CRON_ALTER_LIMITS
4.3.8+可用。启动和关闭“备用速度限制“的cron,主要针对多时段限速场景,当设置了
MONITOR_IP
时本变量的cron不生效(因为会冲突)。详见
相关问题13
问题13。
CRON_IYUU_HELP
4.3.8+可用。IYUUPlus辅助任务的cron,自动重校验、自动恢复做种,详见
相关问题14
。
EXTRA_PACKAGES
4.3.9+可用。你需要安装的其他软件包,形如
htop nano nodejs
,多个软件包用半角空格分开,在docker cli中请用一对双引号引起来,在docker-compose中不要增加引号。
以下是仅
iyuu
标签额外可用的环境变量:
安装后访问
http://ip:8080
。如想使用集成了IYUUPlus的qBittorrent(自动设置好IYUUPlus中的下载器),请使用docker cli以命令行方式部署。
命令行docker cli
除
WEBUI_PORT
BT_PORT
PUID
PGID
这几个环境变量外,如果你还需要使用其他环境变量,请根据
环境变量清单
按照
-e 变量名="变量值" \
的形式自行添加在创建命令中。
armv7设备如若无法使用网络,可能是seccomp问题,详见
这里
。可以在创建命令中增加一行
--security-opt seccomp=unconfined \
来解决。
创建完成后请访问
http://<IP>:<WEBUI_PORT>
(如未修改,对安装机默认是
http://127.0.0.1:8080
)来对qbittorrent作进一步设置,初始用户名密码:
admin/adminadmin
。如要在公网访问,请务必修改用户名和密码。
针对
iyuu
标签,创建后可访问
http://<IP>:8787
进行IYUUPlus设置。
## latest标签或unstable标签
docker run -dit \
-v $PWD/qbittorrent:/data `# 冒号左边请修改为你想在本地保存的路径,这个路径用来保存你个人的配置文件` \
-e PUID="1000" `# 输入id -u可查询,群晖必须改` \
-e PGID="100" `# 输入id -g可查询,群晖必须改` \
-e WEBUI_PORT="8080" `# WEBUI控制端口,可自定义` \
-e BT_PORT="34567" `# BT监听端口,可自定义` \
-p 8080:8080 `# 冒号左右一样,要和WEBUI_PORT一致,命令中的3个8080要改一起改` \
-p 34567:34567/tcp `# 冒号左右一样,要和BT_PORT一致,命令中的5个34567要改一起改` \
-p 34567:34567/udp `# 冒号左右一样,要和BT_PORT一致,命令中的5个34567要改一起改` \
--tmpfs /tmp \
--restart always \
--name qbittorrent \
--hostname qbittorrent \
nevinee/qbittorrent `# 如想参与qbittorrent测试工作,可以指定测试标签nevinee/qbittorrent:unstable`
## iyuu标签
docker run -dit \
-v $PWD/qbittorrent:/data `# 冒号左边请修改为你想在本地保存的路径,这个路径用来保存你个人的配置文件` \
-e PUID="1000" `# 输入id -u可查询,群晖必须改` \
-e PGID="100" `# 输入id -g可查询,群晖必须改` \
-e WEBUI_PORT="8080" `# WEBUI控制端口,可自定义` \
-e BT_PORT="34567" `# BT监听端口,可自定义` \
-p 8080:8080 `# 冒号左右一样,要和WEBUI_PORT一致,命令中的3个8080要改一起改` \
-p 34567:34567/tcp `# 冒号左右一样,要和BT_PORT一致,命令中的5个34567要改一起改` \
-p 34567:34567/udp `# 冒号左右一样,要和BT_PORT一致,命令中的5个34567要改一起改` \
-p 8787:8787 `# IYUUPlus的WebUI控制端口` \
--tmpfs /tmp \
--restart always \
--name qbittorrent \
--hostname qbittorrent \
nevinee/qbittorrent:iyuu
docker compose
新建compose.yml
文件如下(docker compose安装方法),创建好后以docker-compose up -d
(旧版)或docker compose up -d
(新版)命令启动即可。
version: "2.0"
services:
qbittorrent:
image: nevinee/qbittorrent # 如想参与测试工作可以指定nevinee/qbittorrent:unstable,如想使用集成了iyuu的版本请指定nevinee/qbittorrent:iyuu
container_name: qbittorrent
restart: always
tty: true
network_mode: bridge
hostname: qbitorrent
stop_grace_period: 10m # 让qBittorrent程序自行退出后再关闭/删除/重启容器的最长时间,如不设置,则docker默认10秒,这时,种子多的qBittorrent可能还没有完全保存好全部需要保存的信息。
volumes:
- ./data:/data # 配置保存目录
tmpfs:
- /tmp
environment: # 下面未列出的其他环境变量请根据环境变量清单自行添加
- WEBUI_PORT=8080 # WEBUI控制端口,可自定义
- BT_PORT=34567 # BT监听端口,可自定义
- PUID=1000 # 输入id -u可查询,群晖必须改
- PGID=100 # 输入id -g可查询,群晖必须改
ports:
- 8080:8080 # 冒号左右一致,必须同WEBUI_PORT一样,本文件中的3个8080要改一起改
- 34567:34567 # 冒号左右一致,必须同BT_PORT一样,本文件中的5个34567要改一起改
- 34567:34567/udp # 冒号左右一致,必须同BT_PORT一样,本文件中的5个34567要改一起改
#- 8787:8787 # 如使用的是nevinee/qbittorrent:iyuu标签,请解除本行注释
#security_opt: # armv7设备请解除本行和下一行的注释
#- seccomp=unconfined
如若想将qbittorrent建立在已经创建好的macvlan网络上,可以按如下方式创建:
version: "2.0"
services:
qbittorrent:
image: nevinee/qbittorrent # 如想参与测试工作可以指定nevinee/qbittorrent:unstable,如想使用集成了iyuu的版本,请指定nevinee/qbittorrent:iyuu
container_name: qbittorrent
restart: always
tty: true
networks:
<你的macvlan网络名称>:
ipv4_address: <你想设置的ip>
aliases:
- qbittorrent
dns: # docker是无法为macvlan网络提供dns解析服务的,要想正常在macvlan网络上发通知,请给容器添加dns服务器,你也可以直接使用你的网关ip作为dns服务器
- 223.5.5.5
- 114.114.114.114
- 1.2.4.8
hostname: qbitorrent
stop_grace_period: 10m # 让qBittorrent程序自行退出后再关闭/删除/重启容器的最长时间,如不设置,则docker默认10秒,这时,种子多的qBittorrent可能还没有完全保存好全部需要保存的信息。
volumes:
- ./data:/data
tmpfs:
- /tmp
environment: # 下面未列出的其他环境变量请根据环境变量清单自行添加
- WEBUI_PORT=8080 # WEBUI控制端口,可自定义
- BT_PORT=34567 # BT监听端口,可自定义
- PUID=1000 # 输入id -u可查询,群晖必须改
- PGID=100 # 输入id -g可查询,群晖必须改
#security_opt: # armv7设备请解除本行和下一行的注释
#- seccomp=unconfined
networks:
<你的macvlan网络名称>:
external: true
创建完成后请访问http://<IP>:<WEBUI_PORT>
(如未修改,对安装机默认是http://127.0.0.1:8080
)来对qbittorrent作进一步设置,初始用户名密码:admin/adminadmin
。如要在公网访问,请务必修改用户名和密码。
针对iyuu
标签,创建后可访问http://<IP>:8787
进行IYUUPlus设置。
如果按照上述任何一种部署方式,在映射的目录下会有以下文件夹:
/data # 基础路径在容器内为/data,下面所有文件夹均处于/data的下一层,基础路径在宿主机上为你创建容器时映射的
├── cache # qbittorrent的缓存目录
├── certs # 用来存放ssl证书,默认是空的,可另外使用acme.sh来申请ssl证书
├── config # 所有的配置文件保存目录
│ ├── qBittorrent.conf # **配置文件,很重要,如需恢复配置此文件必须保留**
│ ├── qBittorrent-data.conf # **上传下载数据统计文件,如需恢复配置此文件必须保留**
│ └── rss # **rss的配置文件保存目录,如需恢复配置此目录必须保留**
├── data # 所有的数据文件保存目录
│ ├── BT_backup # **当高级设置中恢复文件选择为"Fastresume files"时,种子和快速恢复文件保存目录,如需恢复做种数据此目录必须保留**
│ ├── torrents.db # **当高级设置中恢复文件选择为"SQLite database"时,种子和快速恢复数据的数据库文件,如需恢复做种数据此文件必须保留**
│ ├── GeoDB # IP数据保存目录
│ ├── logs # 日志文件保存目录
│ ├── nova3 # 启用qBittorrent搜索功能后相关文件保存目录
│ └── rss # rss订阅下载文件保存目录
├── diy # 存放你自己编写的脚本的目录,diy.sh需要存放在此
├── downloads # 默认下载目录
├── iyuu_db # 仅iyuu标签有此目录,用来保存IYUUPlus的配置文件,IYUUPlus用户须保留此文件夹
├── logs -> data/logs # 只是个软连接,连接到容器内的/data/data/logs
├── temp # 下载文件临时存放目录,默认在配置中未启用
├── torrents # 保存种子文件目录,默认在配置中未启用
├── watch # 监控目录,监控这个目录下的.torrent文件并自动下载,默认在配置中未启用
└── webui # 存放其他webui文件的目录,需要自己存放,默认在配置中未启用
有两个星号标记的文件或目录是重要目录,恢复数据必须要有这几个。
在 这里 可以查阅所有可用的非官方webui。
使用此镜像会导致封号吗
此镜像未修改qbittorrent客户端官方任何信息,在和pt站tracker服务器交互时反馈的一切信息均是qbittorrent官方原版反馈的信息,此镜像只是基于qbittorrent额外增加了一些脚本而已。增加的脚本全部代码在 这里 可以查看,不会因为使用此镜像导致pt账号被封。
如何在运行 dl-finish “%K” 时调用自定义脚本
此功能可用版本:4.3.7+;
在4.5.0以前的版本不能使用%K
,只能使用%I
;
只要你将名为diy.sh
的shell脚本放在映射目录下的diy
文件夹下即可,容器内路径为/data/diy/diy.sh
(hash已存储在名为torrent_hash的变量中,可通过此值获取其他信息)。
如想传入除“%K”种子ID之外的其他参数,可以在 设置->下载->Torrent 完成时运行外部程序 下填入这种形式:dl-finish "%K" "%N" "%L" "%F"
,必须保证”%K"是第一个参数,后面的参数根据你自己需要调整。在diy.sh
中,"%N" "%L" "%F"
分别通过$2 $3 $4
调用。如:cmd "$2" "$3 "$4"
。$2, $3, $4分别指传入的第2, 第3, 第4个参数,分别对应"%N" "%L" "%F"
。
假如你要调用其他语言的脚本,比如python,可以在diy.sh
中写上python3 /data/diy/your_python_scripts.py $torrent_hash
即可。如需要传入更多参数,请参考上一条在“Torrent 完成时运行外部程序”填入形如dl-finish "%K" "%N" "%L" "%F"
的形式,然后在diy.sh
中写上python3 /data/diy/your_python_scripts.py "$2" "$3" "$4"
。
如需要下载完成后自动触发EMBY/JELLYFIN扫描媒体库,触发ChineseSubFinder自动为刚刚下载完成的视频自动下载字幕,请按照 这里 操作。
如何优雅的关闭qbittorrent容器
暴力强制关闭qbittorrent容器自然是容易丢失任务的,所以在关闭前应当先将所有种子暂停,过一会再关闭容器。这时,所有的配置文件和torrent恢复文件也都是暂停后的状态,然后再新建容器或重新部署,启动后再开始所有任务。
还有一点要注意,千万不要在有下载任务时关闭或重启qbittorrent容器。
如何从其他作者的镜像/套件版转移至本镜像
如果启用了ssl/https,请先在原qbittorrent的webui中禁用,或者将qBittorrent.conf
中WebUI\HTTPS\Enabled=true
改为WebUI\HTTPS\Enabled=false
。
请注意要优雅的关闭旧容器后再处理配置文件。
进入原来容器的映射目录(或原套件版配置文件保存目录,可能是隐藏的)下,在config下分别找到qBittorrent.conf
qBittorrent-data.conf
rss
,在data下找到BT_backup
或torrents.db
,然后将其参考上面的目录树放在新容器的映射目录下,然后在创建容器时,保证新容器中的下载文件的保存路径和旧容器一致,并新建容器即可。
举例说明如何保证新容器中的下载文件的保存路径和旧容器一致,比如旧容器中下载了一个 xxx.2020.BluRay.1080p.x264.DTS-XXX
,保存路径为/movies
(宿主机上的真实路径为/volume1/home/id/movies
),那么在新建新容器时,给新容器增加一个路径映射:/volume1/home/id/movies:/movies
即可。
注意新容器的PUID/PGID和要旧容器保持一致。
注意在 设置
-> 下载
中勾选 Torrent 完成时运行外部程序
并填入 dl-finish "%K"
,如需要https要重新设置证书路径。
可不可以不使用默认下载目录
默认下载目录是/data/downloads
,如不想使用默认下载目录,可以额外映射其他路径,比如映射/volume1/media:/media
,然后在qbittorrent中设置默认下载目录为/media
,也可以在每次下载时自己输入下载目录为/media
。
遗忘登陆密码如何重置
重启一次容器即可,启动时容器会自动以你创建容器时定义的环境变量QB_USERNAME
和QB_PASSWORD
去设置登陆qBittorrent的用户名和密码。
如何与emby, jellyfin, plex等等配合使用
将需要配合使用的容器的环境变量PUID/PGID设置为一样的即可。
启用了其他非官方webui,导致webui打不开,如何关闭
# 进入容器
docker exec -it qbittorrent bash
# 关闭备用webui
source /usr/local/bin/share; $cmd_curl_post -d 'json={"alternative_webui_enabled":false}' $api_url_base/app/setPreferences
如何自动更新容器
安装watchtower即可,详见 这里
安装了watchtower,如何让qbittorrent不被watchtower自动更新
方法1:部署qbittorrent容器时,直接指定标签,如nevinee/qbittorrent:4.3.7
;
方法2(推荐):在部署时在命令中添加一个label:com.centurylinklabs.watchtower.enable=false
:
docker cli:
--label com.centurylinklabs.watchtower.enable=false \
docker-compose:
labels:
com.centurylinklabs.watchtower.enable: false
将qbittorrent安装在macvlan网络上时,如何使用IYUUAutoReseed自动辅种
将两个容器都安装在同一个macvlan网络上即可,或者直接安装nevinee/qbittorrent:iyuu
标签。
如何使用 CRON_ALTER_LIMITS 这个环境变量
4.3.8+可用。
该功能主要提供给多时段限速场景使用,请在qbittorrent客户端中先设置好”备用速度限制“的限制速率。
当设置了有效的MONITOR_IP
时,CRON_ALTER_LIMITS
的cron不生效(因为会冲突)。
设置形式如:0 5 * * *:0 18 * * *|0 8 * * *:0 22 * * *
,|
前面的cron是启用“备用速度限制”的时间点,|
后面的cron是关闭“备用速度限制”的时间点。需要在一天中多次启用“备用速度限制”的,以:
分隔每个cron,可以任意个cron,需要多次关闭“备用速度限制”的同样以:
分隔每个cron。
比如需要在周一至周五的5:00-8:00、17:30-23:30,以及周六、周日的9:00-23:30进行限速,那么可以设置CRON_ALTER_LIMITS
为0 5 * * 1-5:30 17 * * 1-5:0 9 * * 0,6|0 8 * * 1-5:30 23 * * *
。
比如需要在周一至周五的17:30-22:00,以及周六、周日的8:30-23:00进行限速,那么可以设置CRON_ALTER_LIMITS
为30 17 * * 1-5:30 8 * * 0,6|0 22 * * 1-5:0 23 * * 0,6
。
在docker cli中请使用一对双引号引起来,在docker-compose.yml中请勿增加引号。
如何使用 CRON_IYUU_HELP 这个环境变量
4.3.8+可用。
在设置的时间点执行iyuu-help
命令,实现以下功能:
检查下载清单(就是qbittorrent筛选“下载”的清单),检测该清单中处于暂停状态、并且下载完成率为0%(辅种的种子在校验前也是0%)的种子,将这些种子请求重新校验。已经请求过校验并且完成率大于0%的种子不会再次校验。
检查暂停清单(就是qbittorrent筛选“暂停”的清单),检测该清单中100%下载完成/100%校验通过的种子,将这些种子恢复做种。校验未通过不达100%完成率的种子不会启动,仍然保持暂停状态。
配合IYUUAutoReseed,将CRON_IYUU_HELP设置在IYUUAutoReseed自动辅种任务的cron以后,并运行若干次即可(因为校验比较费时,所以要多次运行)。
比如你IYUUAutoReseed辅种任务的cron是22 7 * * *
,你想从辅种任务3分钟后,每10分钟运行一次,共运行4次,那么可以设置CRON_IYUU_HELP为:25-55/10 7 * * *
。
在docker cli中请使用一对双引号引起来,在docker-compose.yml中请勿增加引号。
qBittorrent使用https的webui时,iyuu如何连接
当qBittorrent使用https的webui时,iyuu连接qBittorrent需要使用https://<域名>:<端口>
的形式,不能使用https://<IP>:<端口>
,所以需要在创建iyuu容器(使用nevinee/qbittorrent:iyuu时同样也需要)指定域名和ip的对应关系。
命令行创建iyuu容器时时,增加--add-host <域名>:<qBittorrent容器的IP>
,其中域名是你在公网上访问qBittorrent的webui的域名,如果直接使用的nevinee/qbittorrent:iyuu
标签,就是--add-host <域名>:127.0.0.1
。
docker compose创建时,增加以下内容:
extra_hosts:
- "<域名>:<qBittorrent容器的IP>" ## 如果直接使用的`nevinee/qbittorrent:iyuu`标签,IP就是127.0.0.1
qBittorrent占用了巨大的内存,如何调整
你所见到的占用巨大的内存并不是真的占用了,使用docker stats qbittorrent
输出的内存占用更准确一点,其他方式输出的内存占用会非常的大。因为libtorrent-rasterbar v2.x把内存使用交给内核来处理,内核会自己根据内存大小和读取频次来自动决定怎么去缓存,所以不要被看起来庞大的内存占用给吓着了。详见libtorrent-rasterbar作者的原话。
谷歌翻译如下:
总结一下,libtorrent2.0使用内存映射文件。在除windows之外的所有现代操作系统上,在块设备级别使用统一的页面缓存,其中匿名内存(由swapfile支持)和内存映射文件(包括共享库,运行可执行文件)都是同一缓存的一部分。Linux可能是决定如何在物理RAM中平衡这些页面的最复杂的工具。
使用内存映射文件的好处主要有:
内核(它知道机器有多少物理RAM可用)最了解何时以及以何种顺序刷新缓存。也许更重要的是,决定保留读缓存的数量和时间。
某些类型的存储可以由CPU直接寻址,就像它是RAM一样,绕过了许多内核基础设施,并提供了非常高的性能。(linux称此DAX)
此外,当报告libtorrent(特别是mmap磁盘后端)中的问题时,仅仅指出vmstats数字表明内核决定使用大量物理内存进行磁盘缓存是不够的。这是内存映射磁盘后端的一个特性。
qB老是不监听IPv6地址,怎么办?
有很多原因会导致qBittorrent没有监听IPv6,比如你的IPv6地址变了,比如启动qBittorrent时还没有获取到IPv6等等。看看有没有成功监听到IPv6,只需要在日志中查看本次启动后有没有出现这样的字样即可:
检测到外部 IP。IP:“240e:1234:5678:abcd:ef12:3456:7890:abcd”
如果没有出现类似这样的日志,或者出的日志中的IPv6地址不是当前最新的地址,那么你可以操作:先将 “设置->高级->绑定到的可选IP地址” 选择最新的IPv6地址,保存一次;然后再将其设置为 “所有地址” 后再重新保存一次。过一会日志中就会出现正常的信息了。
自动运行的命令(所有标签可用,由设置的cron或在下载完成时自动运行,当然也可以手动运行)
# 发送通知
docker exec qbittorrent notify "测试消息标题" "测试消息通知内容"
# 将种子按tracker进行分类,由CRON_AUTO_CATEGOR设置的cron来调用
docker exec qbittorrent auto-cat -a # 由程序自动调用,也可手动运行。当CATEGORY_OR_TAG=category时,将所有未分类的种子按tracker分类;当CATEGORY_OR_TAG=tag时,对所有种子按tracker打标签
docker exec qbittorrent auto-cat -A # 需要手动运行。当CATEGORY_OR_TAG=category时,将所有种子按tracker分类;当CATEGORY_OR_TAG=tag时,对所有种子按tracker打标签
# 将指定种子按tracker进行分类,会自动在下载完成时运行一次(由 dl-finish <hash> 命令调用)
docker exec qbittorrent auto-cat -i <hash> # hash可以在种子详情中的"普通"标签页上查看到
# 下载完成时将种子分类,并发送通知,已经在配置文件中填好了
docker exec qbittorrent dl-finish <hash> # hash可以在种子详情中的"普通"标签页上查看到
# 检查qbittorrent是否宕机,如宕机则发送通知,由CRON_HEALTH_CHECK设置的cron来调用
docker exec qbittorrent health-check
# 检查所有种子的tracker状态是否有问题,如有问题,给该种子添加一个 TrackerError 的标签,由CRON_TRACKER_ERROR设置的cron来调用
# 有任何一个tracker处于`工作中``更新中`和`未联系`都不会视作`TrackerError`,只有在运行脚本当时那一刻全部tracker处于`未工作`才会标记
docker exec qbittorrent tracker-error
# 每分钟检测MONITOR_IP设置的ip是否在线,如有任何一个ip在线,则启用“备用速度限制”,4.3.8+可用。
docker exec qbittorrent detect-ip
## 启用可关闭“备用速度限制”,4.3.8+可用,由CRON_ALTER_LIMITS设置的cron来调用
docker exec qbittorrent alter-limits on # 启用“备用速度限制”
docker exec qbittorrent alter-limits off # 关闭“备用速度限制”
## IYUUAutoReseed辅助任务,自动重校验、自动恢复做种,4.3.8+可用,由CRON_IYUU_HELP设置的cron来调用
docker exec qbittorrent iyuu-help
需要手动运行的命令(所有标签可用)
# 查看qbittorrent日志,也可以直接在portainer控制台中看到
docker logs -f qbittorrent
# 批量修改tracker,详见效果图,4.3.7+可用,有两种使用方式,请运行下面命令查看两种方式
docker exec -it qbittorrent change-tracker -h
# 批量删除tracker,4.4.4+可用,有两种使用方式,请运行下面命令查看两种方式
docker exec -it qbittorrent remove-tracker -h
# 检测指定文件夹下没有在qbittorrent客户端中做种或下载的子文件夹/子文件,由用户确认是否删除,详见效果图,4.3.8+可用
# 从4.4.4起,更改成可以一次性检测多个目录
docker exec -it qbittorrent del-unseed-dir
# 当CATEGORY_OR_TAG=category时,将所有种子按tracker分类;当CATEGORY_OR_TAG=tag时,对所有种子按tracker打标签。4.3.9+可用
docker exec qbittorrent auto-cat -A
# 生成本qBittorrent客户端中所有做种文件清单,4.3.9+可用
docker exec -it qbittorrent report-seed-files
# 生成指定路径下没有在本qBittorrent客户端做种的文件清单,4.3.9+可用
docker exec -it qbittorrent report-unseed-files
# 分析指定目录的重复做种率(辅种率),具体说明请运行下列命令,4.5.3+可用
docker exec -it qbittorrent gen-dup
仅“iyuu”标签可用的命令
# 更新IYUUPlus脚本
docker exec -it qbittorrent git -C /iyuu pull
# 重启IYUUPlus
docker exec -it qbittorrent php /iyuu/start.php restart -d
crazymax/qbittorrent , 参考了Dockerfile;
80x86/qbittorrent, 借鉴了标签和分类的理念。
源代码、问题反馈、意见建议
如果镜像好用,请点亮star。全套代码见 Github 或 Gitee。如有使用上的问题,或者有其他好的功能建议,请直接在本文下方评论,或者在 Github这里 或 Gitee这里 提交。
提交bug必须反馈的信息,如不反馈以下信息,我就直接无视了。
创建命令或 docker-compose.yml
文件,请自行对密码打码;
使用的docker镜像的tag,以及qBittorrent的版本;
进入容器后运行 bash -x /usr/local/bin/<命令名>
如 bash -x /usr/local/bin/report-seed-files
的输出(什么命令出错你就反馈什么命令的内容),请自行对密码打码。