說(shuō)明
為保證用戶安全,防止用戶因使用反代并代理了127.0.0.1這種情況導(dǎo)致安全性降低,從2023年9月5日更新的鏡像開(kāi)始,創(chuàng)建容器需要新增設(shè)置兩個(gè)環(huán)境變量:QB_USERNAME(登陸qBittorrent的用戶名)和QB_PASSWORD(登陸qBittorrent的密碼)。容器將在創(chuàng)建時(shí)使用這兩個(gè)環(huán)境變量去設(shè)置(如已存在配置文件則是修改)登陸qBittorent的用戶名和密碼。如未設(shè)置這兩個(gè)環(huán)境變量,或者保持為qBittorrent的默認(rèn)值(默認(rèn)用戶名:admin,默認(rèn)密碼:adminadmin),則本容器附加的所有腳本、定時(shí)任務(wù)將無(wú)法繼續(xù)使用。詳情。也因此鏡像默認(rèn)即安裝好python,不再需要設(shè)置INSTALL_PYTHON這個(gè)環(huán)境變量。
聲明
本鏡像非魔改版、非快驗(yàn)版、非Enhanced增強(qiáng)版,qBittorrent自身的行為/功能全部未做任何改動(dòng)(也不會(huì)考慮添加或修改官方客戶端行為/功能的內(nèi)容),全部屬于官方客戶端的默認(rèn)行為/功能,在和PT站Tracker服務(wù)器交互時(shí)反饋的一切信息均是qBittorrent官方版反饋的信息。本鏡像只是基于官方客戶端附加了一些實(shí)用的腳本,腳本全部是合理合法使用qBittorrent官方API獲取信息,腳本全部行為都集中在本地,與任何遠(yuǎn)端服務(wù)器無(wú)任何聯(lián)系。增加的腳本全部代碼在 Github 或 Gitee 均可查看 。絕對(duì)不會(huì)因?yàn)槭褂么绥R像而導(dǎo)致賬號(hào)被封。
特點(diǎn)
自動(dòng)按
tracker分類或打標(biāo)簽(可以選擇關(guān)閉,可以選擇采用qBittorrent中的“分類”還是“標(biāo)簽”)。下載完成發(fā)送通知(可以選擇關(guān)閉),可選途徑:釘釘(效果圖), Telegram, ServerChan, 愛(ài)語(yǔ)飛飛, PUSHPLUS推送加, 企業(yè)微信, Gotify;搭配RSS功能(RSS教程)自動(dòng)下載效果很好;下載完成后還可以補(bǔ)充運(yùn)行你的自定義腳本。
故障時(shí)發(fā)送通知,可選途徑同上。
按設(shè)定的cron檢查tracker狀態(tài),如發(fā)現(xiàn)種子的tracker狀態(tài)有問(wèn)題,將給該種子添加
TrackerError的標(biāo)簽,方便篩選;如果tracker出錯(cuò)數(shù)量超過(guò)設(shè)定的閾值,給設(shè)定渠道發(fā)送通知。一些輔助功能:批量修改tracker;檢測(cè)指定文件夾下未做種的子文件夾/文件;生成做種文件清單;生成未做種文件清單;配合IYUU自動(dòng)重新校驗(yàn)和自動(dòng)恢復(fù)做種;指定設(shè)備上線時(shí)自動(dòng)限速;多時(shí)段限速;分析指定目錄的重復(fù)做種率(輔種率)等等。
如需要下載完成后自動(dòng)觸發(fā)EMBY/JELLYFIN掃描媒體庫(kù),觸發(fā)ChineseSubFinder自動(dòng)為剛剛下載完成的視頻自動(dòng)下載字幕,請(qǐng)按照 這里 操作。
日志輸出到docker控制臺(tái),可從portainer查看。
python為可選安裝項(xiàng),設(shè)置為true就自動(dòng)安裝。體積小,默認(rèn)中文UI,默認(rèn)東八區(qū)時(shí)區(qū)。
iyuu標(biāo)簽集成了IYUUPlus,自動(dòng)設(shè)置好下載器,減少IYUUPlus設(shè)置復(fù)雜程度。
標(biāo)簽
4.x.x,latest: 標(biāo)簽以純數(shù)字版本號(hào)命名,這是qBittorrent正式發(fā)布的穩(wěn)定版,其中最新的版本額外增加latest標(biāo)簽。Qt: 6.5.2Libtorrent: 2.0.9Boost: 1.82.0OpenSSL:3.1.2zlib: 1.2.13。4.x.x-iyuu,latest-iyuu,iyuu: 標(biāo)簽中帶有iyuu字樣,基于qBittorrent穩(wěn)定版集成了IYUUPlus,其中最新的版本額外增加latest-iyuu和iyuu標(biāo)簽,自動(dòng)安裝好IYUUPlus,自動(dòng)設(shè)置好下載器,主要針對(duì)不會(huì)設(shè)置下載器的用戶。x.x.xalphax,x.x.xbetax,x.x.xrcx,unstable: 標(biāo)簽中帶有alpha、beta或rc字樣,這是qBittorrent發(fā)布的測(cè)試版,其中最新的測(cè)試版額外增加unstable標(biāo)簽。此標(biāo)簽僅供測(cè)試使用及向qBittorrent官方反饋bug使用。edge: 基于alpine:edge制作的鏡像,體積最小,所依賴的組件版本最新,會(huì)提供riscv64版本鏡像。所有新功能或者BUG修復(fù),或者有任何變化時(shí),都會(huì)第一時(shí)間更新到此標(biāo)簽。Qt: 6.5.2Libtorrent: 2.0.9Boost: 1.82.0OpenSSL: 3.1.2zlib: 1.3。
更新日志(僅列出穩(wěn)定版)
環(huán)境變量清單
在下一節(jié)的創(chuàng)建命令中,包括已經(jīng)提及的變量在內(nèi),總共以下環(huán)境變量,請(qǐng)根據(jù)需要參考創(chuàng)建命令中WEBUI_PORT BT_PORT的形式自行補(bǔ)充添加到創(chuàng)建命令中。
注1:默認(rèn)值的含義是,你不設(shè)置這個(gè)環(huán)境變量為其他值,那么程序就自動(dòng)使用默認(rèn)值。
注2:所有定時(shí)任務(wù)cron類的環(huán)境變量(以CRON這四個(gè)字母開(kāi)頭的)在docker cli中請(qǐng)用一對(duì)雙引號(hào)引起來(lái),在docker-compose中不要增加引號(hào)。
注3:所有環(huán)境變量你都可以不設(shè)置,并不影響qbittorrent的使用,但如果你想用得更爽,你就根據(jù)你的需要設(shè)置。
以下是所有標(biāo)簽均可用的環(huán)境變量:
| 序號(hào) | 變量名 | 默認(rèn)值 | 說(shuō)明 |
|---|---|---|---|
| 1 | S6_SERVICES_GRACETIME | 3000(qb<=4.3.9) 30000(qb>=4.4.0) |
在關(guān)閉/重啟/重建容器時(shí),關(guān)閉容器內(nèi)程序(主要就是qbittorrent程序)前的最長(zhǎng)等待時(shí)間(單位:毫秒)。具體見(jiàn) 相關(guān)問(wèn)題 問(wèn)題16。建議4.3.9及以下版本設(shè)置為30000。 |
| 2 | PUID | 1000 | 用戶的uid,輸入命令id -u可以查到,以該用戶運(yùn)行qbittorrent-nox,群暉用戶必須改。 |
| 3 | PGID | 100 | 用戶的gid,輸入命令id -g可以查到,以該用戶運(yùn)行qbittorrent-nox,群暉用戶必須改。 |
| 4 | WEBUI_PORT | 8080 | WebUI訪問(wèn)端口,建議自定義,如需公網(wǎng)訪問(wèn),需要將qBittorrent和公網(wǎng)之間所有網(wǎng)關(guān)設(shè)備上都設(shè)置端口轉(zhuǎn)發(fā)。 |
| 5 | BT_PORT | 34567 | BT監(jiān)聽(tīng)端口,建議自定義,如需達(dá)到可連接狀態(tài),需要將qBittorrent和公網(wǎng)之間所有網(wǎng)關(guān)設(shè)備上都設(shè)置端口轉(zhuǎn)發(fā)。 |
| 6 | QB_USERNAME | admin | 4.5.5+必須設(shè)置此環(huán)境變量,登陸qBittorrent的用戶名,請(qǐng)務(wù)必不要使用默認(rèn)值。 |
| 7 | QB_PASSWORD | adminadmin | 4.5.5+必須設(shè)置此環(huán)境變量,登陸qBittorrent的密碼,請(qǐng)務(wù)必不要使用默認(rèn)值。 |
| 8 | TZ | Asia/Shanghai | 時(shí)區(qū),可填內(nèi)容詳見(jiàn):https://meetingplanner.io/zh-cn/timezone/cities |
| 9 | INSTALL_PYTHON | false |
從4.5.5起,默認(rèn)安裝好python,不再需要設(shè)置這個(gè)環(huán)境變量。默認(rèn)不安裝python,如需要python(qBittorrent的搜索功能必須安裝python),請(qǐng)?jiān)O(shè)置為true,設(shè)置后將在首次啟動(dòng)容器時(shí)自動(dòng)安裝好。 |
| 10 | ENABLE_AUTO_CATEGORY | true | 4.3.7+可用。是否自動(dòng)按tracker進(jìn)行分類,默認(rèn)為true開(kāi)啟,如需關(guān)閉,請(qǐng)?jiān)O(shè)置為false。 |
| 11 | CATEGORY_OR_TAG | category | 4.3.9及4.5.0+可用,當(dāng)ENABLE_AUTO_CATEGORY=true時(shí),控制自動(dòng)分類是qBittorrent中的“分類”還是“標(biāo)簽”。設(shè)置為category(默認(rèn)值)為“分類”,設(shè)置為tag為“標(biāo)簽”。當(dāng)設(shè)置為tag時(shí),由于標(biāo)簽不是唯一的,無(wú)法篩選出沒(méi)有打上tracker標(biāo)簽的種子,所以運(yùn)行auto-cat -a和auto-cat -A都將對(duì)全部種子按tracker打標(biāo)簽,種子多時(shí)比較耗時(shí);而當(dāng)設(shè)置為category時(shí),運(yùn)行auto-cat -a就只對(duì)未分類種子進(jìn)行分類。 |
| 12 | DL_FINISH_NOTIFY | true | 默認(rèn)會(huì)在下載完成時(shí)向設(shè)定的通知渠道發(fā)送種子下載完成的通知消息,如不想收此類通知,則設(shè)置為false。 |
| 13 | TRACKER_ERROR_COUNT_MIN | 3 | 4.3.7+可用??梢栽O(shè)置的值:正整數(shù)。在檢測(cè)到tracker出錯(cuò)的種子數(shù)量超過(guò)這個(gè)閾值時(shí),給設(shè)置的通知渠道發(fā)送通知。 |
| 14 | UMASK_SET | 000 | 權(quán)限掩碼umask,指定qBittorrent在建立文件時(shí)預(yù)設(shè)的權(quán)限掩碼,可以設(shè)置為022。 |
| 15 | TG_USER_ID | 通知渠道telegram,如需使用需要和 TG_BOT_TOKEN 同時(shí)賦值,私聊 @getuseridbot 獲取。 | |
| 16 | TG_BOT_TOKEN | 通知渠道telegram,如需使用需要和 TG_USER_ID 同時(shí)賦值,私聊 @BotFather 獲取。 | |
| 17 | TG_PROXY_ADDRESS | 4.3.7+可用。給TG機(jī)器人發(fā)送消息的代理地址,當(dāng)設(shè)置了TG_USER_ID和TG_BOT_TOKEN后可以設(shè)置此值,形如:http://192.168.1.1:7890,也可以不設(shè)置。 |
|
| 18 | TG_PROXY_USER | 4.3.7+可用。給TG機(jī)器人發(fā)送消息的代理的用戶名和密碼,當(dāng)設(shè)置了TG_PROXY_ADDRESS后可以設(shè)置此值,格式為:<用戶名>:<密碼>,形如:admin:password,如沒(méi)有可不設(shè)置。 |
|
| 19 | DD_BOT_TOKEN | 通知渠道釘釘,如需使用需要和 DD_BOT_SECRET 同時(shí)賦值,機(jī)器人設(shè)置中webhook鏈接access_token=后面的字符串(不含=以及=之前的字符)。 |
|
| 20 | DD_BOT_SECRET | 通知渠道釘釘,如需使用需要和 DD_BOT_TOKEN 同時(shí)賦值,機(jī)器人設(shè)置中只啟用加簽,加簽的秘鑰,形如:SEC1234567890abcdefg。 |
|
| 21 | IYUU_TOKEN | 通知渠道愛(ài)語(yǔ)飛飛,通過(guò) 這里 獲取,愛(ài)語(yǔ)飛飛的TOKEN。 | |
| 22 | SCKEY | 通知渠道ServerChan,通過(guò) 這里 獲取。 | |
| 23 | PUSHPLUS_TOKEN | 4.3.7+可用。通知渠道PUSH PLUS,填入其token,詳見(jiàn) 這里。 | |
| 24 | WORK_WECHAT_BOT_KEY | 4.3.9及4.4.3+可用。通知渠道企業(yè)微信群機(jī)器人,填入機(jī)器人設(shè)置webhook鏈接中key=后面的字符串,不含key=。 |
|
| 25 | GOTIFY_URL | 4.3.9及4.4.4+可用。通知渠道Gotify,填入其通知網(wǎng)址,需要和GOTIFY_APP_TOKEN同時(shí)賦值。 |
|
| 26 | GOTIFY_APP_TOKEN | 4.3.9及4.4.4+可用。通知渠道Gotify,填入其TOKEN,需要和GOTIFY_URL同時(shí)賦值。 |
|
| 27 | GOTIFY_PRIORITY | 5 | 4.3.9及4.4.4+可用。通知渠道Gotify,發(fā)送消息的優(yōu)先級(jí)。 |
| 28 | CRON_HEALTH_CHECK | 12 * * * * | 宕機(jī)檢查的cron,在設(shè)定的cron運(yùn)行時(shí)如發(fā)現(xiàn)qbittorrent-nox宕機(jī)了,則向設(shè)置的通知渠道發(fā)送通知。 |
| 29 | CRON_AUTO_CATEGORY | 32 */2 * * * | 自動(dòng)分類的cron,在設(shè)定的cron運(yùn)行auto-cat -a命令,將所有未分類種子按tracker分類(當(dāng)CATEGORY_OR_TAG=category時(shí)),或?qū)⑺蟹N子按tracker打標(biāo)簽(當(dāng)CATEGORY_OR_TAG=tag時(shí))。對(duì)于種子很多的大戶人家,建議把cron頻率修改低一些,一天一次即可。此cron可以由ENABLE_AUTO_CATEGORY關(guān)閉,關(guān)閉后不生效。雖然本變量是全版本有效,但控制采用“分類”還是“標(biāo)簽”的變量CATEGORY_OR_TAG僅4.3.9和4.5.0+有效。 |
| 30 | CRON_TRACKER_ERROR | 52 */4 * * * | 檢查tracker狀態(tài)是否健康的cron,在設(shè)定的cron將檢查所有種子的tracker狀態(tài),如果有問(wèn)題就打上TrackerError的標(biāo)簽。在運(yùn)行的時(shí)候比較吃資源,所以對(duì)于種子很多的大戶人家,或者是對(duì)此不那么敏感的用戶,建議把cron頻率修改低一些,一天一次即可。 |
| 31 | MONITOR_IP | 4.3.8+可用??稍O(shè)置為局域網(wǎng)設(shè)備的ip,多個(gè)ip以半角空格分隔,形如:192.168.1.5 192.168.1.9 192.168.1.20。本變量作用:當(dāng)檢測(cè)到這些設(shè)置的ip中有任何一個(gè)ip在線時(shí)(檢測(cè)頻率為每分鐘),自動(dòng)啟用qbittorent客戶端的“備用速度限制”,如果都不在線就關(guān)閉“備用速度限制”。“備用速度限制”需要事先設(shè)置好限制速率,建議在路由器上給需要設(shè)置的設(shè)備固定ip。在docker cli中請(qǐng)使用一對(duì)雙引號(hào)引起來(lái),在docker-compose中不要使用引用。 |
|
| 32 | CRON_ALTER_LIMITS | 4.3.8+可用。啟動(dòng)和關(guān)閉“備用速度限制“的cron,主要針對(duì)多時(shí)段限速場(chǎng)景,當(dāng)設(shè)置了MONITOR_IP時(shí)本變量的cron不生效(因?yàn)闀?huì)沖突)。詳見(jiàn) 相關(guān)問(wèn)題 問(wèn)題13。 |
|
| 33 | CRON_IYUU_HELP | 4.3.8+可用。IYUUPlus輔助任務(wù)的cron,自動(dòng)重校驗(yàn)、自動(dòng)恢復(fù)做種,詳見(jiàn) 相關(guān)問(wèn)題 問(wèn)題14。 | |
| 34 | EXTRA_PACKAGES | 4.3.9+可用。你需要安裝的其他軟件包,形如htop nano nodejs,多個(gè)軟件包用半角空格分開(kāi),在docker cli中請(qǐng)用一對(duì)雙引號(hào)引起來(lái),在docker-compose中不要增加引號(hào)。 |
以下是僅iyuu標(biāo)簽額外可用的環(huán)境變量:
| 序號(hào) | 變量名 | 默認(rèn)值 | 說(shuō)明 |
|---|---|---|---|
| 1 | IYUU_REPO_URL | https://gitee.com/ledc/iyuuplus.git |
指定從哪里獲取IYUUPlus的代碼,默認(rèn)從gitee更新,如果你想從github更新,可以設(shè)置為:https://github.com/ledccn/IYUUPlus.git
|
創(chuàng)建
群暉












安裝后訪問(wèn)http://ip:8080。如想使用集成了IYUUPlus的qBittorrent(自動(dòng)設(shè)置好IYUUPlus中的下載器),請(qǐng)使用docker cli以命令行方式部署。
命令行docker cli
除
WEBUI_PORTBT_PORTPUIDPGID這幾個(gè)環(huán)境變量外,如果你還需要使用其他環(huán)境變量,請(qǐng)根據(jù)環(huán)境變量清單按照-e 變量名="變量值" \的形式自行添加在創(chuàng)建命令中。armv7設(shè)備如若無(wú)法使用網(wǎng)絡(luò),可能是seccomp問(wèn)題,詳見(jiàn) 這里??梢栽趧?chuàng)建命令中增加一行
--security-opt seccomp=unconfined \來(lái)解決。創(chuàng)建完成后請(qǐng)?jiān)L問(wèn)
http://<IP>:<WEBUI_PORT>(如未修改,對(duì)安裝機(jī)默認(rèn)是http://127.0.0.1:8080)來(lái)對(duì)qbittorrent作進(jìn)一步設(shè)置,初始用戶名密碼:admin/adminadmin。如要在公網(wǎng)訪問(wèn),請(qǐng)務(wù)必修改用戶名和密碼。針對(duì)
iyuu標(biāo)簽,創(chuàng)建后可訪問(wèn)http://<IP>:8787進(jìn)行IYUUPlus設(shè)置。
## latest標(biāo)簽或unstable標(biāo)簽
docker run -dit \
-v $PWD/qbittorrent:/data `# 冒號(hào)左邊請(qǐng)修改為你想在本地保存的路徑,這個(gè)路徑用來(lái)保存你個(gè)人的配置文件` \
-e PUID="1000" `# 輸入id -u可查詢,群暉必須改` \
-e PGID="100" `# 輸入id -g可查詢,群暉必須改` \
-e WEBUI_PORT="8080" `# WEBUI控制端口,可自定義` \
-e BT_PORT="34567" `# BT監(jiān)聽(tīng)端口,可自定義` \
-p 8080:8080 `# 冒號(hào)左右一樣,要和WEBUI_PORT一致,命令中的3個(gè)8080要改一起改` \
-p 34567:34567/tcp `# 冒號(hào)左右一樣,要和BT_PORT一致,命令中的5個(gè)34567要改一起改` \
-p 34567:34567/udp `# 冒號(hào)左右一樣,要和BT_PORT一致,命令中的5個(gè)34567要改一起改` \
--tmpfs /tmp \
--restart always \
--name qbittorrent \
--hostname qbittorrent \
nevinee/qbittorrent `# 如想?yún)⑴cqbittorrent測(cè)試工作,可以指定測(cè)試標(biāo)簽nevinee/qbittorrent:unstable`
## iyuu標(biāo)簽
docker run -dit \
-v $PWD/qbittorrent:/data `# 冒號(hào)左邊請(qǐng)修改為你想在本地保存的路徑,這個(gè)路徑用來(lái)保存你個(gè)人的配置文件` \
-e PUID="1000" `# 輸入id -u可查詢,群暉必須改` \
-e PGID="100" `# 輸入id -g可查詢,群暉必須改` \
-e WEBUI_PORT="8080" `# WEBUI控制端口,可自定義` \
-e BT_PORT="34567" `# BT監(jiān)聽(tīng)端口,可自定義` \
-p 8080:8080 `# 冒號(hào)左右一樣,要和WEBUI_PORT一致,命令中的3個(gè)8080要改一起改` \
-p 34567:34567/tcp `# 冒號(hào)左右一樣,要和BT_PORT一致,命令中的5個(gè)34567要改一起改` \
-p 34567:34567/udp `# 冒號(hào)左右一樣,要和BT_PORT一致,命令中的5個(gè)34567要改一起改` \
-p 8787:8787 `# IYUUPlus的WebUI控制端口` \
--tmpfs /tmp \
--restart always \
--name qbittorrent \
--hostname qbittorrent \
nevinee/qbittorrent:iyuu
docker compose
新建compose.yml文件如下(docker compose安裝方法),創(chuàng)建好后以docker-compose up -d(舊版)或docker compose up -d(新版)命令啟動(dòng)即可。
version: "2.0"
services:
qbittorrent:
image: nevinee/qbittorrent # 如想?yún)⑴c測(cè)試工作可以指定nevinee/qbittorrent:unstable,如想使用集成了iyuu的版本請(qǐng)指定nevinee/qbittorrent:iyuu
container_name: qbittorrent
restart: always
tty: true
network_mode: bridge
hostname: qbitorrent
stop_grace_period: 10m # 讓qBittorrent程序自行退出后再關(guān)閉/刪除/重啟容器的最長(zhǎng)時(shí)間,如不設(shè)置,則docker默認(rèn)10秒,這時(shí),種子多的qBittorrent可能還沒(méi)有完全保存好全部需要保存的信息。
volumes:
- ./data:/data # 配置保存目錄
tmpfs:
- /tmp
environment: # 下面未列出的其他環(huán)境變量請(qǐng)根據(jù)環(huán)境變量清單自行添加
- WEBUI_PORT=8080 # WEBUI控制端口,可自定義
- BT_PORT=34567 # BT監(jiān)聽(tīng)端口,可自定義
- PUID=1000 # 輸入id -u可查詢,群暉必須改
- PGID=100 # 輸入id -g可查詢,群暉必須改
ports:
- 8080:8080 # 冒號(hào)左右一致,必須同WEBUI_PORT一樣,本文件中的3個(gè)8080要改一起改
- 34567:34567 # 冒號(hào)左右一致,必須同BT_PORT一樣,本文件中的5個(gè)34567要改一起改
- 34567:34567/udp # 冒號(hào)左右一致,必須同BT_PORT一樣,本文件中的5個(gè)34567要改一起改
#- 8787:8787 # 如使用的是nevinee/qbittorrent:iyuu標(biāo)簽,請(qǐng)解除本行注釋
#security_opt: # armv7設(shè)備請(qǐng)解除本行和下一行的注釋
#- seccomp=unconfined
如若想將qbittorrent建立在已經(jīng)創(chuàng)建好的macvlan網(wǎng)絡(luò)上,可以按如下方式創(chuàng)建:
version: "2.0"
services:
qbittorrent:
image: nevinee/qbittorrent # 如想?yún)⑴c測(cè)試工作可以指定nevinee/qbittorrent:unstable,如想使用集成了iyuu的版本,請(qǐng)指定nevinee/qbittorrent:iyuu
container_name: qbittorrent
restart: always
tty: true
networks:
<你的macvlan網(wǎng)絡(luò)名稱>:
ipv4_address: <你想設(shè)置的ip>
aliases:
- qbittorrent
dns: # docker是無(wú)法為macvlan網(wǎng)絡(luò)提供dns解析服務(wù)的,要想正常在macvlan網(wǎng)絡(luò)上發(fā)通知,請(qǐng)給容器添加dns服務(wù)器,你也可以直接使用你的網(wǎng)關(guān)ip作為dns服務(wù)器
- 223.5.5.5
- 114.114.114.114
- 1.2.4.8
hostname: qbitorrent
stop_grace_period: 10m # 讓qBittorrent程序自行退出后再關(guān)閉/刪除/重啟容器的最長(zhǎng)時(shí)間,如不設(shè)置,則docker默認(rèn)10秒,這時(shí),種子多的qBittorrent可能還沒(méi)有完全保存好全部需要保存的信息。
volumes:
- ./data:/data
tmpfs:
- /tmp
environment: # 下面未列出的其他環(huán)境變量請(qǐng)根據(jù)環(huán)境變量清單自行添加
- WEBUI_PORT=8080 # WEBUI控制端口,可自定義
- BT_PORT=34567 # BT監(jiān)聽(tīng)端口,可自定義
- PUID=1000 # 輸入id -u可查詢,群暉必須改
- PGID=100 # 輸入id -g可查詢,群暉必須改
#security_opt: # armv7設(shè)備請(qǐng)解除本行和下一行的注釋
#- seccomp=unconfined
networks:
<你的macvlan網(wǎng)絡(luò)名稱>:
external: true
創(chuàng)建完成后請(qǐng)?jiān)L問(wèn)
http://<IP>:<WEBUI_PORT>(如未修改,對(duì)安裝機(jī)默認(rèn)是http://127.0.0.1:8080)來(lái)對(duì)qbittorrent作進(jìn)一步設(shè)置,初始用戶名密碼:admin/adminadmin。如要在公網(wǎng)訪問(wèn),請(qǐng)務(wù)必修改用戶名和密碼。針對(duì)
iyuu標(biāo)簽,創(chuàng)建后可訪問(wèn)http://<IP>:8787進(jìn)行IYUUPlus設(shè)置。
目錄說(shuō)明
如果按照上述任何一種部署方式,在映射的目錄下會(huì)有以下文件夾:
/data # 基礎(chǔ)路徑在容器內(nèi)為/data,下面所有文件夾均處于/data的下一層,基礎(chǔ)路徑在宿主機(jī)上為你創(chuàng)建容器時(shí)映射的
├── cache # qbittorrent的緩存目錄
├── certs # 用來(lái)存放ssl證書(shū),默認(rèn)是空的,可另外使用acme.sh來(lái)申請(qǐng)ssl證書(shū)
├── config # 所有的配置文件保存目錄
│ ├── qBittorrent.conf # **配置文件,很重要,如需恢復(fù)配置此文件必須保留**
│ ├── qBittorrent-data.conf # **上傳下載數(shù)據(jù)統(tǒng)計(jì)文件,如需恢復(fù)配置此文件必須保留**
│ └── rss # **rss的配置文件保存目錄,如需恢復(fù)配置此目錄必須保留**
├── data # 所有的數(shù)據(jù)文件保存目錄
│ ├── BT_backup # **當(dāng)高級(jí)設(shè)置中恢復(fù)文件選擇為"Fastresume files"時(shí),種子和快速恢復(fù)文件保存目錄,如需恢復(fù)做種數(shù)據(jù)此目錄必須保留**
│ ├── torrents.db # **當(dāng)高級(jí)設(shè)置中恢復(fù)文件選擇為"SQLite database"時(shí),種子和快速恢復(fù)數(shù)據(jù)的數(shù)據(jù)庫(kù)文件,如需恢復(fù)做種數(shù)據(jù)此文件必須保留**
│ ├── GeoDB # IP數(shù)據(jù)保存目錄
│ ├── logs # 日志文件保存目錄
│ ├── nova3 # 啟用qBittorrent搜索功能后相關(guān)文件保存目錄
│ └── rss # rss訂閱下載文件保存目錄
├── diy # 存放你自己編寫(xiě)的腳本的目錄,diy.sh需要存放在此
├── downloads # 默認(rèn)下載目錄
├── iyuu_db # 僅iyuu標(biāo)簽有此目錄,用來(lái)保存IYUUPlus的配置文件,IYUUPlus用戶須保留此文件夾
├── logs -> data/logs # 只是個(gè)軟連接,連接到容器內(nèi)的/data/data/logs
├── temp # 下載文件臨時(shí)存放目錄,默認(rèn)在配置中未啟用
├── torrents # 保存種子文件目錄,默認(rèn)在配置中未啟用
├── watch # 監(jiān)控目錄,監(jiān)控這個(gè)目錄下的.torrent文件并自動(dòng)下載,默認(rèn)在配置中未啟用
└── webui # 存放其他webui文件的目錄,需要自己存放,默認(rèn)在配置中未啟用
有兩個(gè)星號(hào)標(biāo)記的文件或目錄是重要目錄,恢復(fù)數(shù)據(jù)必須要有這幾個(gè)。
在這里可以查閱所有可用的非官方webui:https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs
相關(guān)問(wèn)題
使用此鏡像會(huì)導(dǎo)致封號(hào)嗎
此鏡像未修改qbittorrent客戶端官方任何信息,在和pt站tracker服務(wù)器交互時(shí)反饋的一切信息均是qbittorrent官方原版反饋的信息,此鏡像只是基于qbittorrent額外增加了一些腳本而已。增加的腳本全部代碼在 這里 可以查看,不會(huì)因?yàn)槭褂么绥R像導(dǎo)致pt賬號(hào)被封。
如何在運(yùn)行 dl-finish "%I" 時(shí)調(diào)用自定義腳本
此功能可用版本:4.3.7+;
只要你將名為
diy.sh的shell腳本放在映射目錄下的diy文件夾下即可,容器內(nèi)路徑為/data/diy/diy.sh(hash已存儲(chǔ)在名為torrent_hash的變量中,可通過(guò)此值獲取其他信息)。如想傳入除“%K”種子ID之外的其他參數(shù),可以在 設(shè)置->下載->Torrent 完成時(shí)運(yùn)行外部程序 下填入這種形式:
dl-finish "%K" "%N" "%L" "%F",必須保證"%K"是第一個(gè)參數(shù),后面的參數(shù)根據(jù)你自己需要調(diào)整。在diy.sh中,"%N" "%L" "%F"分別通過(guò)$2 $3 $4調(diào)用。如:cmd "$2" "$3 "$4"。3, $4分別指?jìng)魅氲牡?, 第3, 第4個(gè)參數(shù),分別對(duì)應(yīng)
"%N" "%L" "%F"。假如你要調(diào)用其他語(yǔ)言的腳本,比如python,可以在
diy.sh中寫(xiě)上python3 /data/diy/your_python_scripts.py $torrent_hash即可。如需要傳入更多參數(shù),請(qǐng)參考上一條在“Torrent 完成時(shí)運(yùn)行外部程序”填入形如dl-finish "%K" "%N" "%L" "%F"的形式,然后在diy.sh中寫(xiě)上python3 /data/diy/your_python_scripts.py "$2" "$3" "$4"。如需要下載完成后自動(dòng)觸發(fā)EMBY/JELLYFIN掃描媒體庫(kù),觸發(fā)ChineseSubFinder自動(dòng)為剛剛下載完成的視頻自動(dòng)下載字幕,請(qǐng)按照 這里 操作。
如何優(yōu)雅的關(guān)閉qbittorrent容器
暴力強(qiáng)制關(guān)閉qbittorrent容器自然是容易丟失任務(wù)的,所以在關(guān)閉前應(yīng)當(dāng)先將所有種子暫停,過(guò)一會(huì)再關(guān)閉容器。這時(shí),所有的配置文件和torrent恢復(fù)文件也都是暫停后的狀態(tài),然后再新建容器或重新部署,啟動(dòng)后再開(kāi)始所有任務(wù)。
還有一點(diǎn)要注意,千萬(wàn)不要在有下載任務(wù)時(shí)關(guān)閉或重啟qbittorrent容器。
如何從其他作者的鏡像/套件版轉(zhuǎn)移至本鏡像
如果啟用了ssl/https,請(qǐng)先在原qbittorrent的webui中禁用,或者將
qBittorrent.conf中WebUI\HTTPS\Enabled=true改為WebUI\HTTPS\Enabled=false。請(qǐng)注意要優(yōu)雅的關(guān)閉舊容器后再處理配置文件。
進(jìn)入原來(lái)容器的映射目錄(或原套件版配置文件保存目錄,可能是隱藏的)下,在config下分別找到
qBittorrent.confqBittorrent-data.confrss,在data下找到BT_backup,然后將其參考上面的目錄樹(shù)放在新容器的映射目錄下,然后在創(chuàng)建容器時(shí),保證新容器中的下載文件的保存路徑和舊容器一致,并新建容器即可。舉例說(shuō)明如何保證新容器中的下載文件的保存路徑和舊容器一致,比如舊容器中下載了一個(gè)
xxx.2020.BluRay.1080p.x264.DTS-XXX,保存路徑為/movies(宿主機(jī)上的真實(shí)路徑為/volume1/home/id/movies),那么在新建新容器時(shí),給新容器增加一個(gè)路徑映射:/volume1/home/id/movies:/movies即可。注意新容器的PUID/PGID和要舊容器保持一致。
注意在
設(shè)置->下載中勾選Torrent 完成時(shí)運(yùn)行外部程序并填入dl-finish "%K",如需要https要重新設(shè)置證書(shū)路徑。
可不可以不使用默認(rèn)下載目錄
默認(rèn)下載目錄是/data/downloads,如不想使用默認(rèn)下載目錄,可以額外映射其他路徑,比如映射/volume1/media:/media,然后在qbittorrent中設(shè)置默認(rèn)下載目錄為/media,也可以在每次下載時(shí)自己輸入下載目錄為/media。
遺忘登陸密碼如何重置
# 進(jìn)入容器
docker exec -it qbittorrent bash
# 如果啟用了ssl
curl -k -X POST -d 'json={"web_ui_username":"新的用戶名","web_ui_password":"新的密碼"}' https://127.0.0.1:${WEBUI_PORT}/api/v2/app/setPreferences
# 如果未啟用ssl
curl -X POST -d 'json={"web_ui_username":"新的用戶名","web_ui_password":"新的密碼"}' http://127.0.0.1:${WEBUI_PORT}/api/v2/app/setPreferences
如何與emby, jellyfin, plex等等配合使用
將需要配合使用的容器的環(huán)境變量PUID/PGID設(shè)置為一樣的即可。
啟用了其他非官方webui,導(dǎo)致webui打不開(kāi),如何關(guān)閉
# 進(jìn)入容器
docker exec -it qbittorrent bash
# 如果啟用了ssl
curl -k -X POST -d 'json={"alternative_webui_enabled":false}' https://127.0.0.1:${WEBUI_PORT}/api/v2/app/setPreferences
# 如果未啟用ssl
curl -X POST -d 'json={"alternative_webui_enabled":false}' http://127.0.0.1:${WEBUI_PORT}/api/v2/app/setPreferences
如何自動(dòng)更新容器
安裝watchtower即可,詳見(jiàn) 這里
安裝了watchtower,如何讓qbittorrent不被watchtower自動(dòng)更新
方法1:部署qbittorrent容器時(shí),直接指定標(biāo)簽,如
nevinee/qbittorrent:4.3.7;-
方法2(推薦):在部署時(shí)在命令中添加一個(gè)label:
com.centurylinklabs.watchtower.enable=false:docker cli:
--label com.centurylinklabs.watchtower.enable=false \docker-compose:
labels: com.centurylinklabs.watchtower.enable: false
為何建議將qbittorrent安裝在macvlan網(wǎng)絡(luò)上
可以在網(wǎng)關(guān)上給qbittorrent所在ip獨(dú)立設(shè)置限速;
如果有用openwrt時(shí),可以讓qbittorrent所在ip跳過(guò)代理。
將qbittorrent安裝在macvlan網(wǎng)絡(luò)上時(shí),如何使用IYUUAutoReseed自動(dòng)輔種
將兩個(gè)容器都安裝在同一個(gè)macvlan網(wǎng)絡(luò)上即可,或者直接安裝nevinee/qbittorrent:iyuu標(biāo)簽。
如何使用 CRON_ALTER_LIMITS 這個(gè)環(huán)境變量
4.3.8+可用。
該功能主要提供給多時(shí)段限速場(chǎng)景使用,請(qǐng)?jiān)趒bittorrent客戶端中先設(shè)置好”備用速度限制“的限制速率。
當(dāng)設(shè)置了有效的
MONITOR_IP時(shí),CRON_ALTER_LIMITS的cron不生效(因?yàn)闀?huì)沖突)。設(shè)置形式如:
0 5 * * *:0 18 * * *|0 8 * * *:0 22 * * *,|前面的cron是啟用“備用速度限制”的時(shí)間點(diǎn),|后面的cron是關(guān)閉“備用速度限制”的時(shí)間點(diǎn)。需要在一天中多次啟用“備用速度限制”的,以:分隔每個(gè)cron,可以任意個(gè)cron,需要多次關(guān)閉“備用速度限制”的同樣以:分隔每個(gè)cron。比如需要在周一至周五的5:00-8:00、17:30-23:30,以及周六、周日的9:00-23:30進(jìn)行限速,那么可以設(shè)置
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進(jìn)行限速,那么可以設(shè)置
CRON_ALTER_LIMITS為30 17 * * 1-5:30 8 * * 0,6|0 22 * * 1-5:0 23 * * 0,6。在docker cli中請(qǐng)使用一對(duì)雙引號(hào)引起來(lái),在docker-compose.yml中請(qǐng)勿增加引號(hào)。
如何使用 CRON_IYUU_HELP 這個(gè)環(huán)境變量
4.3.8+可用。
-
在設(shè)置的時(shí)間點(diǎn)執(zhí)行
iyuu-help命令,實(shí)現(xiàn)以下功能:- 檢查下載清單(就是qbittorrent篩選“下載”的清單),檢測(cè)該清單中處于暫停狀態(tài)、并且下載完成率為0%(輔種的種子在校驗(yàn)前也是0%)的種子,將這些種子請(qǐng)求重新校驗(yàn)。已經(jīng)請(qǐng)求過(guò)校驗(yàn)并且完成率大于0%的種子不會(huì)再次校驗(yàn)。
- 檢查暫停清單(就是qbittorrent篩選“暫?!钡那鍐危瑱z測(cè)該清單中100%下載完成/100%校驗(yàn)通過(guò)的種子,將這些種子恢復(fù)做種。校驗(yàn)未通過(guò)不達(dá)100%完成率的種子不會(huì)啟動(dòng),仍然保持暫停狀態(tài)。
配合IYUUAutoReseed,將CRON_IYUU_HELP設(shè)置在IYUUAutoReseed自動(dòng)輔種任務(wù)的cron以后,并運(yùn)行若干次即可(因?yàn)樾r?yàn)比較費(fèi)時(shí),所以要多次運(yùn)行)。
比如你IYUUAutoReseed輔種任務(wù)的cron是
22 7 * * *,你想從輔種任務(wù)3分鐘后,每10分鐘運(yùn)行一次,共運(yùn)行4次,那么可以設(shè)置CRON_IYUU_HELP為:25-55/10 7 * * *。在docker cli中請(qǐng)使用一對(duì)雙引號(hào)引起來(lái),在docker-compose.yml中請(qǐng)勿增加引號(hào)。
qBittorrent使用https的webui時(shí),iyuu如何連接
當(dāng)qBittorrent使用https的webui時(shí),iyuu連接qBittorrent需要使用
https://<域名>:<端口>的形式,不能使用https://<IP>:<端口>,所以需要在創(chuàng)建iyuu容器(使用nevinee/qbittorrent:iyuu時(shí)同樣也需要)指定域名和ip的對(duì)應(yīng)關(guān)系。命令行創(chuàng)建iyuu容器時(shí)時(shí),增加
--add-host <域名>:<qBittorrent容器的IP>,其中域名是你在公網(wǎng)上訪問(wèn)qBittorrent的webui的域名,如果直接使用的nevinee/qbittorrent:iyuu標(biāo)簽,就是--add-host <域名>:127.0.0.1。-
docker compose創(chuàng)建時(shí),增加以下內(nèi)容:
extra_hosts: - "<域名>:<qBittorrent容器的IP>" ## 如果直接使用的`nevinee/qbittorrent:iyuu`標(biāo)簽,IP就是127.0.0.1
qBittorrent占用了巨大的內(nèi)存,如何調(diào)整
你所見(jiàn)到的占用巨大的內(nèi)存并不是真的占用了,使用docker stats qbittorrent輸出的內(nèi)存占用更準(zhǔn)確一點(diǎn),其他方式輸出的內(nèi)存占用會(huì)非常的大。因?yàn)閘ibtorrent-rasterbar v2.x把內(nèi)存使用交給內(nèi)核來(lái)處理,內(nèi)核會(huì)自己根據(jù)內(nèi)存大小和讀取頻次來(lái)自動(dòng)決定怎么去緩存,所以不要被看起來(lái)龐大的內(nèi)存占用給嚇著了。詳見(jiàn)libtorrent-rasterbar作者的原話。
谷歌翻譯如下:
總結(jié)一下,libtorrent2.0使用內(nèi)存映射文件。在除windows之外的所有現(xiàn)代操作系統(tǒng)上,在塊設(shè)備級(jí)別使用統(tǒng)一的頁(yè)面緩存,其中匿名內(nèi)存(由swapfile支持)和內(nèi)存映射文件(包括共享庫(kù),運(yùn)行可執(zhí)行文件)都是同一緩存的一部分。Linux可能是決定如何在物理RAM中平衡這些頁(yè)面的最復(fù)雜的工具。
使用內(nèi)存映射文件的好處主要有:
內(nèi)核(它知道機(jī)器有多少物理RAM可用)最了解何時(shí)以及以何種順序刷新緩存。也許更重要的是,決定保留讀緩存的數(shù)量和時(shí)間。
某些類型的存儲(chǔ)可以由CPU直接尋址,就像它是RAM一樣,繞過(guò)了許多內(nèi)核基礎(chǔ)設(shè)施,并提供了非常高的性能。(linux稱此DAX)
此外,當(dāng)報(bào)告libtorrent(特別是mmap磁盤(pán)后端)中的問(wèn)題時(shí),僅僅指出vmstats數(shù)字表明內(nèi)核決定使用大量物理內(nèi)存進(jìn)行磁盤(pán)緩存是不夠的。這是內(nèi)存映射磁盤(pán)后端的一個(gè)特性。
命令
自動(dòng)運(yùn)行的命令(所有標(biāo)簽可用,由設(shè)置的cron或在下載完成時(shí)自動(dòng)運(yùn)行,當(dāng)然也可以手動(dòng)運(yùn)行)
# 發(fā)送通知
docker exec qbittorrent notify "測(cè)試消息標(biāo)題" "測(cè)試消息通知內(nèi)容"
# 將種子按tracker進(jìn)行分類,由CRON_AUTO_CATEGOR設(shè)置的cron來(lái)調(diào)用
docker exec qbittorrent auto-cat -a # 由程序自動(dòng)調(diào)用,也可手動(dòng)運(yùn)行。當(dāng)CATEGORY_OR_TAG=category時(shí),將所有未分類的種子按tracker分類;當(dāng)CATEGORY_OR_TAG=tag時(shí),對(duì)所有種子按tracker打標(biāo)簽
docker exec qbittorrent auto-cat -A # 需要手動(dòng)運(yùn)行。當(dāng)CATEGORY_OR_TAG=category時(shí),將所有種子按tracker分類;當(dāng)CATEGORY_OR_TAG=tag時(shí),對(duì)所有種子按tracker打標(biāo)簽
# 將指定種子按tracker進(jìn)行分類,會(huì)自動(dòng)在下載完成時(shí)運(yùn)行一次(由 dl-finish <hash> 命令調(diào)用)
docker exec qbittorrent auto-cat -i <hash> # hash可以在種子詳情中的"普通"標(biāo)簽頁(yè)上查看到
# 下載完成時(shí)將種子分類,并發(fā)送通知,已經(jīng)在配置文件中填好了
docker exec qbittorrent dl-finish <hash> # hash可以在種子詳情中的"普通"標(biāo)簽頁(yè)上查看到
# 檢查qbittorrent是否宕機(jī),如宕機(jī)則發(fā)送通知,由CRON_HEALTH_CHECK設(shè)置的cron來(lái)調(diào)用
docker exec qbittorrent health-check
# 檢查所有種子的tracker狀態(tài)是否有問(wèn)題,如有問(wèn)題,給該種子添加一個(gè) TrackerError 的標(biāo)簽,由CRON_TRACKER_ERROR設(shè)置的cron來(lái)調(diào)用
docker exec qbittorrent tracker-error
# 每分鐘檢測(cè)MONITOR_IP設(shè)置的ip是否在線,如有任何一個(gè)ip在線,則啟用“備用速度限制”,4.3.8+可用。
docker exec qbittorrent detect-ip
## 啟用可關(guān)閉“備用速度限制”,4.3.8+可用,由CRON_ALTER_LIMITS設(shè)置的cron來(lái)調(diào)用
docker exec qbittorrent alter-limits on # 啟用“備用速度限制”
docker exec qbittorrent alter-limits off # 關(guān)閉“備用速度限制”
## IYUUAutoReseed輔助任務(wù),自動(dòng)重校驗(yàn)、自動(dòng)恢復(fù)做種,4.3.8+可用,由CRON_IYUU_HELP設(shè)置的cron來(lái)調(diào)用
docker exec qbittorrent iyuu-help
需要手動(dòng)運(yùn)行的命令(所有標(biāo)簽可用)
# 查看qbittorrent日志,也可以直接在portainer控制臺(tái)中看到
docker logs -f qbittorrent
# 批量修改tracker,詳見(jiàn)下面效果圖,4.3.7+可用,有兩種使用方式,請(qǐng)運(yùn)行下面命令查看兩種方式
docker exec -it qbittorrent change-tracker -h
# 批量刪除tracker,4.4.4+可用,有兩種使用方式,請(qǐng)運(yùn)行下面命令查看兩種方式
docker exec -it qbittorrent remove-tracker -h
# 檢測(cè)指定文件夾下沒(méi)有在qbittorrent客戶端中做種或下載的子文件夾/子文件,由用戶確認(rèn)是否刪除,詳見(jiàn)下面效果圖,4.3.8+可用
# 從4.4.4起,更改成可以一次性檢測(cè)多個(gè)目錄
docker exec -it qbittorrent del-unseed-dir
# 當(dāng)CATEGORY_OR_TAG=category時(shí),將所有種子按tracker分類;當(dāng)CATEGORY_OR_TAG=tag時(shí),對(duì)所有種子按tracker打標(biāo)簽。4.3.9+可用
docker exec qbittorrent auto-cat -A
# 生成本qBittorrent客戶端中所有做種文件清單,4.3.9+可用
docker exec -it qbittorrent report-seed-files
# 生成指定路徑下沒(méi)有在本qBittorrent客戶端做種的文件清單,4.3.9+可用
docker exec -it qbittorrent report-unseed-files
# 分析指定目錄的重復(fù)做種率(輔種率),具體說(shuō)明請(qǐng)運(yùn)行下列命令,4.5.3+可用
docker exec -it qbittorrent gen-dup
僅“iyuu”標(biāo)簽可用的命令
# 更新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, 借鑒了標(biāo)簽和分類的理念。
源代碼、問(wèn)題反饋、意見(jiàn)建議
如果鏡像好用,請(qǐng)點(diǎn)亮star。全套代碼見(jiàn) Github 或 Gitee。如有使用上的問(wèn)題,或者有其他好的功能建議,請(qǐng)?jiān)?Github這里 或 Gitee這里 提交。