omv 家用 nas 搭建[2], qbitttorrent 部署

omv 家用 nas 搭建[2], qbitttorrent 部署

1. 部署背景

由于吸血驴,某雷的私有 bt 协议存在,同时由于政策原因,国内国外的 bt 资源网站管理也越来越严格,使得 bt 下载愈加难以为继。

目前大致只有两种下载模式,其一是 pt 资源站,使用专有 pt 协议进行下载;其二是使用百度云等云存储服务商提供的下载资源。

pt 资源,国内通常使用的下载软件为 qBittorrent,BitTorrent,uTorrent 等,国外除了国内下载软件外,部分用户使用 Deluge 。qBittorrent 作为老牌 pt 下载软件,在稳定性上已经经过了一段时间的考验,同时其出色的 ui 以及丰富的参数设置,也吸引了一批坚定的使用者。


2. 部署过程

部署过程主要参考油管 DB Tech 相关视频。

2.1 下载 docker image

由于国内网络性能的原因,从 docker hub 拉取镜像时可能会出现下载缓慢的现象。因此笔者的建议是先将 docker image 下载缓存在本地后再进行 docker-compose 的部署。

此次使用的是 linuxserver 组织编写的 dockerfile 镜像,linuxserver 组织编写的 nas 相关的项目配置相对简单,种类也较全。

从 docker hub 网站 复制命令 docker pull linuxserver/qbittorrent ,使用 ssh 连接终端,复制命令并运行,等待镜像下载完成。下载后执行 docker image list ,应该会看到相应镜像。

2.2 编辑 docker-compose

打开 portainer,选择侧边栏 stacks ,点击 add stack 按钮即可创建 portainer stack。

portainer stack 使用的是 docker-compose 格式的部署脚本,需要从 docker hub 中的 qbittorrent 文档 复制并且加以修改。文档中代码如下:

---
version: "2.1"
services:
  qbittorrent:
    image: ghcr.io/linuxserver/qbittorrent
    container_name: qbittorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - WEBUI_PORT=8080
    volumes:
      - /path/to/appdata/config:/config
      - /path/to/downloads:/downloads
    ports:
      - 6881:6881
      - 6881:6881/udp
      - 8080:8080
    restart: unless-stopped

需要修改的地方有以下几个:

2.2.1 修改 PUID,PGID

根据 linuxserver 文档 所述,使用PUID和PGID,可以将容器的内部用户映射到宿主机上的用户,这样能够避免 root 权限配置及容器映射卷内的文件管理问题。

使用 ssh 连接至 omv 终端后,输入 id admin 命令获取当前 PUID 以及 PGID,如下图所示,此时的 PUID = 998,PGID = 100。

2.2.2 修改 TZ

根据当前时区位置修改为 TZ=Asia/Shanghai

2.2.3 修改磁盘映射

docker 会将宿主机的文件路径映射为容器中的文件路径。在 docker-compose 中,例如 /path/to/appdata/config:/config 冒号前的则为宿主机路径,冒号后的为映射的路径。

首先在 omv 中通过添加共享文件夹来创建宿主机的目的文件夹,如下图所示:

在添加时,设备指的是共享文件夹存储对应的硬盘,路径则是共享文件夹在硬盘上存储的相对位置。

创建成功后,在页面上显示的绝对路径即为所要的宿主机路径,如下图所示:

2.2.4 修改端口

当 docker 不为 host 模式时,容器与宿主机间将会进行一层类似 NAT 转换,从而减少不同容器间的端口冲突。而 qbittorrent 中需要开启 tcp,udp,web 三个端口。根据文档所述,由于 CSRF 和端口映射的问题,如果需要更改 webui 的端口,则需要更改端口,并将 WEBUI_PORT 环境变量的值设置为新端口的值。例如,要将端口设置为 8090,需要同时设置 8090:8090和 WEBUI_PORT = 8090。

而 tcp,udp 端口的值建议尽量不做更改。

2.2.5 修改总结

经过上述调整,修改后的 docker-compose 大致如以下所示:

---
version: "2.1"
services:
  qbittorrent:
    image: ghcr.io/linuxserver/qbittorrent
    container_name: qbittorrent
    environment:
      - PUID=998
      - PGID=100
      - TZ=Asia/Shanghai
      - WEBUI_PORT=9001
    volumes:
      - /srv/dev-disk-by-uuid-760db5aa-db10-48eb-bc2e-06fcf98b2c8f/software/qbittorrent/config:/config