通過docker安裝qbittorrent

說明

為保證用戶安全,防止用戶因使用反代并代理了127.0.0.1這種情況導(dǎo)致安全性降低,從2023年9月5日更新的鏡像開始,創(chuàng)建容器需要新增設(shè)置兩個環(huán)境變量:QB_USERNAME(登陸qBittorrent的用戶名)和QB_PASSWORD(登陸qBittorrent的密碼)。容器將在創(chuàng)建時使用這兩個環(huán)境變量去設(shè)置(如已存在配置文件則是修改)登陸qBittorent的用戶名和密碼。如未設(shè)置這兩個環(huán)境變量,或者保持為qBittorrent的默認(rèn)值(默認(rèn)用戶名:admin,默認(rèn)密碼:adminadmin),則本容器附加的所有腳本、定時任務(wù)將無法繼續(xù)使用。詳情。也因此鏡像默認(rèn)即安裝好python,不再需要設(shè)置INSTALL_PYTHON這個環(huán)境變量。

聲明

本鏡像非魔改版、非快驗版、非Enhanced增強版,qBittorrent自身的行為/功能全部未做任何改動(也不會考慮添加或修改官方客戶端行為/功能的內(nèi)容),全部屬于官方客戶端的默認(rèn)行為/功能,在和PT站Tracker服務(wù)器交互時反饋的一切信息均是qBittorrent官方版反饋的信息。本鏡像只是基于官方客戶端附加了一些實用的腳本,腳本全部是合理合法使用qBittorrent官方API獲取信息,腳本全部行為都集中在本地,與任何遠(yuǎn)端服務(wù)器無任何聯(lián)系。增加的腳本全部代碼在 GithubGitee 均可查看 。絕對不會因為使用此鏡像而導(dǎo)致賬號被封。

特點

  • 自動按tracker分類或打標(biāo)簽(可以選擇關(guān)閉,可以選擇采用qBittorrent中的“分類”還是“標(biāo)簽”)。

  • 下載完成發(fā)送通知(可以選擇關(guān)閉),可選途徑:釘釘(效果圖), Telegram, ServerChan, 愛語飛飛, PUSHPLUS推送加, 企業(yè)微信, Gotify;搭配RSS功能(RSS教程)自動下載效果很好;下載完成后還可以補充運行你的自定義腳本。

  • 故障時發(fā)送通知,可選途徑同上。

  • 按設(shè)定的cron檢查tracker狀態(tài),如發(fā)現(xiàn)種子的tracker狀態(tài)有問題,將給該種子添加TrackerError的標(biāo)簽,方便篩選;如果tracker出錯數(shù)量超過設(shè)定的閾值,給設(shè)定渠道發(fā)送通知。

  • 一些輔助功能:批量修改tracker;檢測指定文件夾下未做種的子文件夾/文件;生成做種文件清單;生成未做種文件清單;配合IYUU自動重新校驗和自動恢復(fù)做種;指定設(shè)備上線時自動限速;多時段限速;分析指定目錄的重復(fù)做種率(輔種率)等等。

  • 如需要下載完成后自動觸發(fā)EMBY/JELLYFIN掃描媒體庫,觸發(fā)ChineseSubFinder自動為剛剛下載完成的視頻自動下載字幕,請按照 這里 操作。

  • 日志輸出到docker控制臺,可從portainer查看。

  • python為可選安裝項,設(shè)置為true就自動安裝。

  • 體積小,默認(rèn)中文UI,默認(rèn)東八區(qū)時區(qū)。

  • iyuu標(biāo)簽集成了IYUUPlus,自動設(shè)置好下載器,減少IYUUPlus設(shè)置復(fù)雜程度。

標(biāo)簽

  1. 4.x.x , latest: 標(biāo)簽以純數(shù)字版本號命名,這是qBittorrent正式發(fā)布的穩(wěn)定版,其中最新的版本額外增加latest標(biāo)簽。Qt: 6.5.2 Libtorrent: 2.0.9 Boost: 1.82.0 OpenSSL:3.1.2 zlib: 1.2.13

  2. 4.x.x-iyuu , latest-iyuu , iyuu: 標(biāo)簽中帶有iyuu字樣,基于qBittorrent穩(wěn)定版集成了IYUUPlus,其中最新的版本額外增加latest-iyuuiyuu標(biāo)簽,自動安裝好IYUUPlus,自動設(shè)置好下載器,主要針對不會設(shè)置下載器的用戶。

  3. x.x.xalphax, x.x.xbetax , x.x.xrcx , unstable: 標(biāo)簽中帶有alphabetarc字樣,這是qBittorrent發(fā)布的測試版,其中最新的測試版額外增加unstable 標(biāo)簽。此標(biāo)簽僅供測試使用及向qBittorrent官方反饋bug使用。

  4. edge: 基于alpine:edge制作的鏡像,體積最小,所依賴的組件版本最新,會提供riscv64版本鏡像。所有新功能或者BUG修復(fù),或者有任何變化時,都會第一時間更新到此標(biāo)簽。Qt: 6.5.2 Libtorrent: 2.0.9 Boost: 1.82.0 OpenSSL: 3.1.2 zlib: 1.3

更新日志(僅列出穩(wěn)定版)

詳見:GithubGitee

環(huán)境變量清單

在下一節(jié)的創(chuàng)建命令中,包括已經(jīng)提及的變量在內(nèi),總共以下環(huán)境變量,請根據(jù)需要參考創(chuàng)建命令中WEBUI_PORT BT_PORT的形式自行補充添加到創(chuàng)建命令中。

注1:默認(rèn)值的含義是,你不設(shè)置這個環(huán)境變量為其他值,那么程序就自動使用默認(rèn)值。

注2:所有定時任務(wù)cron類的環(huán)境變量(以CRON這四個字母開頭的)在docker cli中請用一對雙引號引起來,在docker-compose中不要增加引號。

注3:所有環(huán)境變量你都可以不設(shè)置,并不影響qbittorrent的使用,但如果你想用得更爽,你就根據(jù)你的需要設(shè)置。

以下是所有標(biāo)簽均可用的環(huán)境變量:

序號 變量名 默認(rèn)值 說明
1 S6_SERVICES_GRACETIME 3000(qb<=4.3.9)
30000(qb>=4.4.0)
在關(guān)閉/重啟/重建容器時,關(guān)閉容器內(nèi)程序(主要就是qbittorrent程序)前的最長等待時間(單位:毫秒)。具體見 相關(guān)問題 問題16。建議4.3.9及以下版本設(shè)置為30000
2 PUID 1000 用戶的uid,輸入命令id -u可以查到,以該用戶運行qbittorrent-nox,群暉用戶必須改。
3 PGID 100 用戶的gid,輸入命令id -g可以查到,以該用戶運行qbittorrent-nox,群暉用戶必須改。
4 WEBUI_PORT 8080 WebUI訪問端口,建議自定義,如需公網(wǎng)訪問,需要將qBittorrent和公網(wǎng)之間所有網(wǎng)關(guān)設(shè)備上都設(shè)置端口轉(zhuǎn)發(fā)。
5 BT_PORT 34567 BT監(jiān)聽端口,建議自定義,如需達(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的用戶名,請務(wù)必不要使用默認(rèn)值
7 QB_PASSWORD adminadmin 4.5.5+必須設(shè)置此環(huán)境變量,登陸qBittorrent的密碼,請務(wù)必不要使用默認(rèn)值。
8 TZ Asia/Shanghai 時區(qū),可填內(nèi)容詳見:https://meetingplanner.io/zh-cn/timezone/cities
9 INSTALL_PYTHON false 從4.5.5起,默認(rèn)安裝好python,不再需要設(shè)置這個環(huán)境變量。默認(rèn)不安裝python,如需要python(qBittorrent的搜索功能必須安裝python),請設(shè)置為true,設(shè)置后將在首次啟動容器時自動安裝好。
10 ENABLE_AUTO_CATEGORY true 4.3.7+可用。是否自動按tracker進(jìn)行分類,默認(rèn)為true開啟,如需關(guān)閉,請設(shè)置為false
11 CATEGORY_OR_TAG category 4.3.9及4.5.0+可用,當(dāng)ENABLE_AUTO_CATEGORY=true時,控制自動分類是qBittorrent中的“分類”還是“標(biāo)簽”。設(shè)置為category(默認(rèn)值)為“分類”,設(shè)置為tag為“標(biāo)簽”。當(dāng)設(shè)置為tag時,由于標(biāo)簽不是唯一的,無法篩選出沒有打上tracker標(biāo)簽的種子,所以運行auto-cat -aauto-cat -A都將對全部種子按tracker打標(biāo)簽,種子多時比較耗時;而當(dāng)設(shè)置為category時,運行auto-cat -a就只對未分類種子進(jìn)行分類。
12 DL_FINISH_NOTIFY true 默認(rèn)會在下載完成時向設(shè)定的通知渠道發(fā)送種子下載完成的通知消息,如不想收此類通知,則設(shè)置為false。
13 TRACKER_ERROR_COUNT_MIN 3 4.3.7+可用??梢栽O(shè)置的值:正整數(shù)。在檢測到tracker出錯的種子數(shù)量超過這個閾值時,給設(shè)置的通知渠道發(fā)送通知。
14 UMASK_SET 000 權(quán)限掩碼umask,指定qBittorrent在建立文件時預(yù)設(shè)的權(quán)限掩碼,可以設(shè)置為022。
15 TG_USER_ID 通知渠道telegram,如需使用需要和 TG_BOT_TOKEN 同時賦值,私聊 @getuseridbot 獲取。
16 TG_BOT_TOKEN 通知渠道telegram,如需使用需要和 TG_USER_ID 同時賦值,私聊 @BotFather 獲取。
17 TG_PROXY_ADDRESS 4.3.7+可用。給TG機器人發(fā)送消息的代理地址,當(dāng)設(shè)置了TG_USER_IDTG_BOT_TOKEN后可以設(shè)置此值,形如:http://192.168.1.1:7890,也可以不設(shè)置。
18 TG_PROXY_USER 4.3.7+可用。給TG機器人發(fā)送消息的代理的用戶名和密碼,當(dāng)設(shè)置了TG_PROXY_ADDRESS后可以設(shè)置此值,格式為:<用戶名>:<密碼>,形如:admin:password,如沒有可不設(shè)置。
19 DD_BOT_TOKEN 通知渠道釘釘,如需使用需要和 DD_BOT_SECRET 同時賦值,機器人設(shè)置中webhook鏈接access_token=后面的字符串(不含=以及=之前的字符)。
20 DD_BOT_SECRET 通知渠道釘釘,如需使用需要和 DD_BOT_TOKEN 同時賦值,機器人設(shè)置中只啟用加簽,加簽的秘鑰,形如:SEC1234567890abcdefg
21 IYUU_TOKEN 通知渠道愛語飛飛,通過 這里 獲取,愛語飛飛的TOKEN。
22 SCKEY 通知渠道ServerChan,通過 這里 獲取。
23 PUSHPLUS_TOKEN 4.3.7+可用。通知渠道PUSH PLUS,填入其token,詳見 這里。
24 WORK_WECHAT_BOT_KEY 4.3.9及4.4.3+可用。通知渠道企業(yè)微信群機器人,填入機器人設(shè)置webhook鏈接中key=后面的字符串,不含key=。
25 GOTIFY_URL 4.3.9及4.4.4+可用。通知渠道Gotify,填入其通知網(wǎng)址,需要和GOTIFY_APP_TOKEN同時賦值。
26 GOTIFY_APP_TOKEN 4.3.9及4.4.4+可用。通知渠道Gotify,填入其TOKEN,需要和GOTIFY_URL同時賦值。
27 GOTIFY_PRIORITY 5 4.3.9及4.4.4+可用。通知渠道Gotify,發(fā)送消息的優(yōu)先級。
28 CRON_HEALTH_CHECK 12 * * * * 宕機檢查的cron,在設(shè)定的cron運行時如發(fā)現(xiàn)qbittorrent-nox宕機了,則向設(shè)置的通知渠道發(fā)送通知。
29 CRON_AUTO_CATEGORY 32 */2 * * * 自動分類的cron,在設(shè)定的cron運行auto-cat -a命令,將所有未分類種子按tracker分類(當(dāng)CATEGORY_OR_TAG=category時),或?qū)⑺蟹N子按tracker打標(biāo)簽(當(dāng)CATEGORY_OR_TAG=tag時)。對于種子很多的大戶人家,建議把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),如果有問題就打上TrackerError的標(biāo)簽。在運行的時候比較吃資源,所以對于種子很多的大戶人家,或者是對此不那么敏感的用戶,建議把cron頻率修改低一些,一天一次即可。
31 MONITOR_IP 4.3.8+可用??稍O(shè)置為局域網(wǎng)設(shè)備的ip,多個ip以半角空格分隔,形如:192.168.1.5 192.168.1.9 192.168.1.20。本變量作用:當(dāng)檢測到這些設(shè)置的ip中有任何一個ip在線時(檢測頻率為每分鐘),自動啟用qbittorent客戶端的“備用速度限制”,如果都不在線就關(guān)閉“備用速度限制”?!皞溆盟俣认拗啤毙枰孪仍O(shè)置好限制速率,建議在路由器上給需要設(shè)置的設(shè)備固定ip。在docker cli中請使用一對雙引號引起來,在docker-compose中不要使用引用。
32 CRON_ALTER_LIMITS 4.3.8+可用。啟動和關(guān)閉“備用速度限制“的cron,主要針對多時段限速場景,當(dāng)設(shè)置了MONITOR_IP時本變量的cron不生效(因為會沖突)。詳見 相關(guān)問題 問題13。
33 CRON_IYUU_HELP 4.3.8+可用。IYUUPlus輔助任務(wù)的cron,自動重校驗、自動恢復(fù)做種,詳見 相關(guān)問題 問題14。
34 EXTRA_PACKAGES 4.3.9+可用。你需要安裝的其他軟件包,形如htop nano nodejs,多個軟件包用半角空格分開,在docker cli中請用一對雙引號引起來,在docker-compose中不要增加引號。

以下是僅iyuu標(biāo)簽額外可用的環(huán)境變量:

序號 變量名 默認(rèn)值 說明
1 IYUU_REPO_URL https://gitee.com/ledc/iyuuplus.git 指定從哪里獲取IYUUPlus的代碼,默認(rèn)從gitee更新,如果你想從github更新,可以設(shè)置為:https://github.com/ledccn/IYUUPlus.git

創(chuàng)建

群暉

1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png

安裝后訪問http://ip:8080。如想使用集成了IYUUPlus的qBittorrent(自動設(shè)置好IYUUPlus中的下載器),請使用docker cli以命令行方式部署。

命令行docker cli

  • WEBUI_PORT BT_PORT PUID PGID這幾個環(huán)境變量外,如果你還需要使用其他環(huán)境變量,請根據(jù)環(huán)境變量清單按照-e 變量名="變量值" \的形式自行添加在創(chuàng)建命令中。

  • armv7設(shè)備如若無法使用網(wǎng)絡(luò),可能是seccomp問題,詳見 這里??梢栽趧?chuàng)建命令中增加一行--security-opt seccomp=unconfined \ 來解決。

  • 創(chuàng)建完成后請訪問http://<IP>:<WEBUI_PORT>(如未修改,對安裝機默認(rèn)是http://127.0.0.1:8080)來對qbittorrent作進(jìn)一步設(shè)置,初始用戶名密碼:admin/adminadmin。如要在公網(wǎng)訪問,請務(wù)必修改用戶名和密碼。

  • 針對iyuu標(biāo)簽,創(chuàng)建后可訪問http://<IP>:8787進(jìn)行IYUUPlus設(shè)置。

## latest標(biāo)簽或unstable標(biāo)簽
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監(jiān)聽端口,可自定義` \
  -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   `# 如想?yún)⑴cqbittorrent測試工作,可以指定測試標(biāo)簽nevinee/qbittorrent:unstable`

## iyuu標(biāo)簽
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監(jiān)聽端口,可自定義` \
  -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安裝方法),創(chuàng)建好后以docker-compose up -d(舊版)或docker compose up -d(新版)命令啟動即可。

version: "2.0"
services:
  qbittorrent:
    image: nevinee/qbittorrent  # 如想?yún)⑴c測試工作可以指定nevinee/qbittorrent:unstable,如想使用集成了iyuu的版本請指定nevinee/qbittorrent:iyuu
    container_name: qbittorrent
    restart: always
    tty: true
    network_mode: bridge
    hostname: qbitorrent
    stop_grace_period: 10m # 讓qBittorrent程序自行退出后再關(guān)閉/刪除/重啟容器的最長時間,如不設(shè)置,則docker默認(rèn)10秒,這時,種子多的qBittorrent可能還沒有完全保存好全部需要保存的信息。
    volumes:
      - ./data:/data      # 配置保存目錄
    tmpfs:
      - /tmp
    environment:          # 下面未列出的其他環(huán)境變量請根據(jù)環(huán)境變量清單自行添加
      - WEBUI_PORT=8080   # WEBUI控制端口,可自定義
      - BT_PORT=34567     # BT監(jiān)聽端口,可自定義
      - 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標(biāo)簽,請解除本行注釋
    #security_opt:       # armv7設(shè)備請解除本行和下一行的注釋
      #- seccomp=unconfined

如若想將qbittorrent建立在已經(jīng)創(chuàng)建好的macvlan網(wǎng)絡(luò)上,可以按如下方式創(chuàng)建:

version: "2.0"
services:
  qbittorrent:
    image: nevinee/qbittorrent # 如想?yún)⑴c測試工作可以指定nevinee/qbittorrent:unstable,如想使用集成了iyuu的版本,請指定nevinee/qbittorrent:iyuu
    container_name: qbittorrent
    restart: always
    tty: true
    networks: 
      <你的macvlan網(wǎng)絡(luò)名稱>:
        ipv4_address: <你想設(shè)置的ip>
        aliases:
          - qbittorrent
    dns:   # docker是無法為macvlan網(wǎng)絡(luò)提供dns解析服務(wù)的,要想正常在macvlan網(wǎng)絡(luò)上發(fā)通知,請給容器添加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)閉/刪除/重啟容器的最長時間,如不設(shè)置,則docker默認(rèn)10秒,這時,種子多的qBittorrent可能還沒有完全保存好全部需要保存的信息。
    volumes:
      - ./data:/data
    tmpfs:
      - /tmp
    environment:          # 下面未列出的其他環(huán)境變量請根據(jù)環(huán)境變量清單自行添加
      - WEBUI_PORT=8080   # WEBUI控制端口,可自定義
      - BT_PORT=34567     # BT監(jiān)聽端口,可自定義
      - PUID=1000         # 輸入id -u可查詢,群暉必須改
      - PGID=100          # 輸入id -g可查詢,群暉必須改
    #security_opt:        # armv7設(shè)備請解除本行和下一行的注釋
      #- seccomp=unconfined

networks: 
  <你的macvlan網(wǎng)絡(luò)名稱>:
    external: true
  • 創(chuàng)建完成后請訪問http://<IP>:<WEBUI_PORT>(如未修改,對安裝機默認(rèn)是http://127.0.0.1:8080)來對qbittorrent作進(jìn)一步設(shè)置,初始用戶名密碼:admin/adminadmin。如要在公網(wǎng)訪問,請務(wù)必修改用戶名和密碼。

  • 針對iyuu標(biāo)簽,創(chuàng)建后可訪問http://<IP>:8787進(jìn)行IYUUPlus設(shè)置。

目錄說明

如果按照上述任何一種部署方式,在映射的目錄下會有以下文件夾:

/data                         # 基礎(chǔ)路徑在容器內(nèi)為/data,下面所有文件夾均處于/data的下一層,基礎(chǔ)路徑在宿主機上為你創(chuàng)建容器時映射的
├── cache                     # qbittorrent的緩存目錄
├── certs                     # 用來存放ssl證書,默認(rèn)是空的,可另外使用acme.sh來申請ssl證書
├── config                    # 所有的配置文件保存目錄
│   ├── qBittorrent.conf      # **配置文件,很重要,如需恢復(fù)配置此文件必須保留**
│   ├── qBittorrent-data.conf # **上傳下載數(shù)據(jù)統(tǒng)計文件,如需恢復(fù)配置此文件必須保留**
│   └── rss                   # **rss的配置文件保存目錄,如需恢復(fù)配置此目錄必須保留**
├── data                      # 所有的數(shù)據(jù)文件保存目錄
│   ├── BT_backup             # **當(dāng)高級設(shè)置中恢復(fù)文件選擇為"Fastresume files"時,種子和快速恢復(fù)文件保存目錄,如需恢復(fù)做種數(shù)據(jù)此目錄必須保留**
│   ├── torrents.db           # **當(dāng)高級設(shè)置中恢復(fù)文件選擇為"SQLite database"時,種子和快速恢復(fù)數(shù)據(jù)的數(shù)據(jù)庫文件,如需恢復(fù)做種數(shù)據(jù)此文件必須保留**
│   ├── GeoDB                 # IP數(shù)據(jù)保存目錄
│   ├── logs                  # 日志文件保存目錄
│   ├── nova3                 # 啟用qBittorrent搜索功能后相關(guān)文件保存目錄
│   └── rss                   # rss訂閱下載文件保存目錄
├── diy                       # 存放你自己編寫的腳本的目錄,diy.sh需要存放在此
├── downloads                 # 默認(rèn)下載目錄
├── iyuu_db                   # 僅iyuu標(biāo)簽有此目錄,用來保存IYUUPlus的配置文件,IYUUPlus用戶須保留此文件夾
├── logs -> data/logs         # 只是個軟連接,連接到容器內(nèi)的/data/data/logs
├── temp                      # 下載文件臨時存放目錄,默認(rèn)在配置中未啟用
├── torrents                  # 保存種子文件目錄,默認(rèn)在配置中未啟用
├── watch                     # 監(jiān)控目錄,監(jiān)控這個目錄下的.torrent文件并自動下載,默認(rèn)在配置中未啟用
└── webui                     # 存放其他webui文件的目錄,需要自己存放,默認(rèn)在配置中未啟用

有兩個星號標(biāo)記的文件或目錄是重要目錄,恢復(fù)數(shù)據(jù)必須要有這幾個。

在這里可以查閱所有可用的非官方webui:https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs

相關(guān)問題

使用此鏡像會導(dǎo)致封號嗎

此鏡像未修改qbittorrent客戶端官方任何信息,在和pt站tracker服務(wù)器交互時反饋的一切信息均是qbittorrent官方原版反饋的信息,此鏡像只是基于qbittorrent額外增加了一些腳本而已。增加的腳本全部代碼在 這里 可以查看,不會因為使用此鏡像導(dǎo)致pt賬號被封。

如何在運行 dl-finish "%I" 時調(diào)用自定義腳本

  • 此功能可用版本:4.3.7+;

  • 只要你將名為diy.sh的shell腳本放在映射目錄下的diy文件夾下即可,容器內(nèi)路徑為/data/diy/diy.sh(hash已存儲在名為torrent_hash的變量中,可通過此值獲取其他信息)。

  • 如想傳入除“%K”種子ID之外的其他參數(shù),可以在 設(shè)置->下載->Torrent 完成時運行外部程序 下填入這種形式:dl-finish "%K" "%N" "%L" "%F",必須保證"%K"是第一個參數(shù),后面的參數(shù)根據(jù)你自己需要調(diào)整。在diy.sh中,"%N" "%L" "%F"分別通過$2 $3 $4調(diào)用。如:cmd "$2" "$3 "$4"。2,3, $4分別指傳入的第2, 第3, 第4個參數(shù),分別對應(yīng)"%N" "%L" "%F"。

  • 假如你要調(diào)用其他語言的腳本,比如python,可以在diy.sh中寫上python3 /data/diy/your_python_scripts.py $torrent_hash即可。如需要傳入更多參數(shù),請參考上一條在“Torrent 完成時運行外部程序”填入形如dl-finish "%K" "%N" "%L" "%F"的形式,然后在diy.sh中寫上python3 /data/diy/your_python_scripts.py "$2" "$3" "$4"

  • 如需要下載完成后自動觸發(fā)EMBY/JELLYFIN掃描媒體庫,觸發(fā)ChineseSubFinder自動為剛剛下載完成的視頻自動下載字幕,請按照 這里 操作。

如何優(yōu)雅的關(guān)閉qbittorrent容器

  • 暴力強制關(guān)閉qbittorrent容器自然是容易丟失任務(wù)的,所以在關(guān)閉前應(yīng)當(dāng)先將所有種子暫停,過一會再關(guān)閉容器。這時,所有的配置文件和torrent恢復(fù)文件也都是暫停后的狀態(tài),然后再新建容器或重新部署,啟動后再開始所有任務(wù)。

  • 還有一點要注意,千萬不要在有下載任務(wù)時關(guān)閉或重啟qbittorrent容器。

如何從其他作者的鏡像/套件版轉(zhuǎn)移至本鏡像

  • 如果啟用了ssl/https,請先在原qbittorrent的webui中禁用,或者將qBittorrent.confWebUI\HTTPS\Enabled=true改為WebUI\HTTPS\Enabled=false。

  • 請注意要優(yōu)雅的關(guān)閉舊容器后再處理配置文件。

  • 進(jìn)入原來容器的映射目錄(或原套件版配置文件保存目錄,可能是隱藏的)下,在config下分別找到qBittorrent.conf qBittorrent-data.conf rss,在data下找到BT_backup,然后將其參考上面的目錄樹放在新容器的映射目錄下,然后在創(chuàng)建容器時,保證新容器中的下載文件的保存路徑和舊容器一致,并新建容器即可。

  • 舉例說明如何保證新容器中的下載文件的保存路徑和舊容器一致,比如舊容器中下載了一個 xxx.2020.BluRay.1080p.x264.DTS-XXX,保存路徑為/movies(宿主機上的真實路徑為/volume1/home/id/movies),那么在新建新容器時,給新容器增加一個路徑映射:/volume1/home/id/movies:/movies 即可。

  • 注意新容器的PUID/PGID和要舊容器保持一致。

  • 注意在 設(shè)置 -> 下載 中勾選 Torrent 完成時運行外部程序 并填入 dl-finish "%K",如需要https要重新設(shè)置證書路徑。

可不可以不使用默認(rèn)下載目錄

默認(rèn)下載目錄是/data/downloads,如不想使用默認(rèn)下載目錄,可以額外映射其他路徑,比如映射/volume1/media:/media,然后在qbittorrent中設(shè)置默認(rèn)下載目錄為/media,也可以在每次下載時自己輸入下載目錄為/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打不開,如何關(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

如何自動更新容器

安裝watchtower即可,詳見 這里

安裝了watchtower,如何讓qbittorrent不被watchtower自動更新

  • 方法1:部署qbittorrent容器時,直接指定標(biāo)簽,如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網(wǎng)絡(luò)上

  • 可以在網(wǎng)關(guān)上給qbittorrent所在ip獨立設(shè)置限速;

  • 如果有用openwrt時,可以讓qbittorrent所在ip跳過代理。

將qbittorrent安裝在macvlan網(wǎng)絡(luò)上時,如何使用IYUUAutoReseed自動輔種

將兩個容器都安裝在同一個macvlan網(wǎng)絡(luò)上即可,或者直接安裝nevinee/qbittorrent:iyuu標(biāo)簽。

如何使用 CRON_ALTER_LIMITS 這個環(huán)境變量

  • 4.3.8+可用。

  • 該功能主要提供給多時段限速場景使用,請在qbittorrent客戶端中先設(shè)置好”備用速度限制“的限制速率。

  • 當(dāng)設(shè)置了有效的MONITOR_IP時,CRON_ALTER_LIMITS的cron不生效(因為會沖突)。

  • 設(shè)置形式如:0 5 * * *:0 18 * * *|0 8 * * *:0 22 * * *,|前面的cron是啟用“備用速度限制”的時間點,|后面的cron是關(guān)閉“備用速度限制”的時間點。需要在一天中多次啟用“備用速度限制”的,以:分隔每個cron,可以任意個cron,需要多次關(guān)閉“備用速度限制”的同樣以:分隔每個cron。

  • 比如需要在周一至周五的5:00-8:00、17:30-23:30,以及周六、周日的9:00-23:30進(jìn)行限速,那么可以設(shè)置CRON_ALTER_LIMITS0 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_LIMITS30 17 * * 1-5:30 8 * * 0,6|0 22 * * 1-5:0 23 * * 0,6。

  • 在docker cli中請使用一對雙引號引起來,在docker-compose.yml中請勿增加引號。

如何使用 CRON_IYUU_HELP 這個環(huán)境變量

  • 4.3.8+可用。

  • 在設(shè)置的時間點執(zhí)行iyuu-help命令,實現(xiàn)以下功能:

    1. 檢查下載清單(就是qbittorrent篩選“下載”的清單),檢測該清單中處于暫停狀態(tài)、并且下載完成率為0%(輔種的種子在校驗前也是0%)的種子,將這些種子請求重新校驗。已經(jīng)請求過校驗并且完成率大于0%的種子不會再次校驗。
    2. 檢查暫停清單(就是qbittorrent篩選“暫停”的清單),檢測該清單中100%下載完成/100%校驗通過的種子,將這些種子恢復(fù)做種。校驗未通過不達(dá)100%完成率的種子不會啟動,仍然保持暫停狀態(tài)。
  • 配合IYUUAutoReseed,將CRON_IYUU_HELP設(shè)置在IYUUAutoReseed自動輔種任務(wù)的cron以后,并運行若干次即可(因為校驗比較費時,所以要多次運行)。

  • 比如你IYUUAutoReseed輔種任務(wù)的cron是22 7 * * *,你想從輔種任務(wù)3分鐘后,每10分鐘運行一次,共運行4次,那么可以設(shè)置CRON_IYUU_HELP為:25-55/10 7 * * *

  • 在docker cli中請使用一對雙引號引起來,在docker-compose.yml中請勿增加引號。

qBittorrent使用https的webui時,iyuu如何連接

  • 當(dāng)qBittorrent使用https的webui時,iyuu連接qBittorrent需要使用https://<域名>:<端口>的形式,不能使用https://<IP>:<端口>,所以需要在創(chuàng)建iyuu容器(使用nevinee/qbittorrent:iyuu時同樣也需要)指定域名和ip的對應(yīng)關(guān)系。

  • 命令行創(chuàng)建iyuu容器時時,增加--add-host <域名>:<qBittorrent容器的IP>,其中域名是你在公網(wǎng)上訪問qBittorrent的webui的域名,如果直接使用的nevinee/qbittorrent:iyuu標(biāo)簽,就是--add-host <域名>:127.0.0.1

  • docker compose創(chuàng)建時,增加以下內(nèi)容:

        extra_hosts:
          - "<域名>:<qBittorrent容器的IP>"  ## 如果直接使用的`nevinee/qbittorrent:iyuu`標(biāo)簽,IP就是127.0.0.1
    

qBittorrent占用了巨大的內(nèi)存,如何調(diào)整

你所見到的占用巨大的內(nèi)存并不是真的占用了,使用docker stats qbittorrent輸出的內(nèi)存占用更準(zhǔn)確一點,其他方式輸出的內(nèi)存占用會非常的大。因為libtorrent-rasterbar v2.x把內(nèi)存使用交給內(nèi)核來處理,內(nèi)核會自己根據(jù)內(nèi)存大小和讀取頻次來自動決定怎么去緩存,所以不要被看起來龐大的內(nèi)存占用給嚇著了。詳見libtorrent-rasterbar作者的原話

谷歌翻譯如下:

總結(jié)一下,libtorrent2.0使用內(nèi)存映射文件。在除windows之外的所有現(xiàn)代操作系統(tǒng)上,在塊設(shè)備級別使用統(tǒng)一的頁面緩存,其中匿名內(nèi)存(由swapfile支持)和內(nèi)存映射文件(包括共享庫,運行可執(zhí)行文件)都是同一緩存的一部分。Linux可能是決定如何在物理RAM中平衡這些頁面的最復(fù)雜的工具。

使用內(nèi)存映射文件的好處主要有:

內(nèi)核(它知道機器有多少物理RAM可用)最了解何時以及以何種順序刷新緩存。也許更重要的是,決定保留讀緩存的數(shù)量和時間。

某些類型的存儲可以由CPU直接尋址,就像它是RAM一樣,繞過了許多內(nèi)核基礎(chǔ)設(shè)施,并提供了非常高的性能。(linux稱此DAX)

此外,當(dāng)報告libtorrent(特別是mmap磁盤后端)中的問題時,僅僅指出vmstats數(shù)字表明內(nèi)核決定使用大量物理內(nèi)存進(jìn)行磁盤緩存是不夠的。這是內(nèi)存映射磁盤后端的一個特性。

命令

自動運行的命令(所有標(biāo)簽可用,由設(shè)置的cron或在下載完成時自動運行,當(dāng)然也可以手動運行)

# 發(fā)送通知
docker exec qbittorrent notify "測試消息標(biāo)題" "測試消息通知內(nèi)容"

# 將種子按tracker進(jìn)行分類,由CRON_AUTO_CATEGOR設(shè)置的cron來調(diào)用
docker exec qbittorrent auto-cat -a  # 由程序自動調(diào)用,也可手動運行。當(dāng)CATEGORY_OR_TAG=category時,將所有未分類的種子按tracker分類;當(dāng)CATEGORY_OR_TAG=tag時,對所有種子按tracker打標(biāo)簽
docker exec qbittorrent auto-cat -A  # 需要手動運行。當(dāng)CATEGORY_OR_TAG=category時,將所有種子按tracker分類;當(dāng)CATEGORY_OR_TAG=tag時,對所有種子按tracker打標(biāo)簽

# 將指定種子按tracker進(jìn)行分類,會自動在下載完成時運行一次(由 dl-finish <hash> 命令調(diào)用)
docker exec qbittorrent auto-cat -i <hash>   # hash可以在種子詳情中的"普通"標(biāo)簽頁上查看到

# 下載完成時將種子分類,并發(fā)送通知,已經(jīng)在配置文件中填好了
docker exec qbittorrent dl-finish <hash>     # hash可以在種子詳情中的"普通"標(biāo)簽頁上查看到

# 檢查qbittorrent是否宕機,如宕機則發(fā)送通知,由CRON_HEALTH_CHECK設(shè)置的cron來調(diào)用
docker exec qbittorrent health-check

# 檢查所有種子的tracker狀態(tài)是否有問題,如有問題,給該種子添加一個 TrackerError 的標(biāo)簽,由CRON_TRACKER_ERROR設(shè)置的cron來調(diào)用
docker exec qbittorrent tracker-error

# 每分鐘檢測MONITOR_IP設(shè)置的ip是否在線,如有任何一個ip在線,則啟用“備用速度限制”,4.3.8+可用。
docker exec qbittorrent detect-ip

## 啟用可關(guān)閉“備用速度限制”,4.3.8+可用,由CRON_ALTER_LIMITS設(shè)置的cron來調(diào)用
docker exec qbittorrent alter-limits on    # 啟用“備用速度限制”
docker exec qbittorrent alter-limits off   # 關(guān)閉“備用速度限制”

## IYUUAutoReseed輔助任務(wù),自動重校驗、自動恢復(fù)做種,4.3.8+可用,由CRON_IYUU_HELP設(shè)置的cron來調(diào)用
docker exec qbittorrent iyuu-help

需要手動運行的命令(所有標(biāo)簽可用)

# 查看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客戶端中做種或下載的子文件夾/子文件,由用戶確認(rèn)是否刪除,詳見下面效果圖,4.3.8+可用
# 從4.4.4起,更改成可以一次性檢測多個目錄
docker exec -it qbittorrent del-unseed-dir

# 當(dāng)CATEGORY_OR_TAG=category時,將所有種子按tracker分類;當(dāng)CATEGORY_OR_TAG=tag時,對所有種子按tracker打標(biāo)簽。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

# 分析指定目錄的重復(fù)做種率(輔種率),具體說明請運行下列命令,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 

參考

源代碼、問題反饋、意見建議

如果鏡像好用,請點亮star。全套代碼見 GithubGitee。如有使用上的問題,或者有其他好的功能建議,請在 Github這里Gitee這里 提交。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容