开年第一篇文章,新年快乐~
前言
PeerBanHelper,通过WebUI与qBittorrent通讯。通过系统自带的资源监控不难注意到,飞牛OS系统自带的下载器后后端由qBittorrent和Aria2支撑,进程名称为trim-qbittorrent和trim-aria2c。但是飞牛OS没有提供系统自带qBittorrent的原生WebUI接口,xxxuuu/fnos-qb-proxy提供了一个Go语言代理WebUI的客户端,但是没有Docker部署。
让我这个Docker小白来试试。
本文其实就是Kainichy/fnos-qb-proxy/Docker-Install.md加几句话哈,水一篇文章美滋滋。已经PR给xxxuuu/fnos-qb-proxy了,应该不久就能在那里看见。
获取所需文件
到xxxuuu/fnos-qb-proxy: Releases获取fnos-qb-proxy_linux-amd64,到Kainichy/fnos-qb-proxy获取相应的Dockerfile和docker-compose.yml。
然后进行一些配置,如下。配置过程中将多次用到查找与替换的功能,建议使用支持相应功能的编辑器而非手动替换,以免出错。此外,除非您清楚地知道您在做什么,否则不建议修改其他位置的内容。
修改Dockerfile
如果您修改了二进制文件的名称,请将如下字段中的fnos-qb-proxy_linux-amd64改为您修改的文件名:
COPY fnos-qb-proxy_linux-amd64 /usr/local/bin/fnos-qb-proxy修改docker-compose.yml
如果您需要自定义代理容器在宿主机上暴露的端口号(效果相当于上文中通过--port参数传入的端口号),请修改如下字段中引号左边的7777为您所需要的端口号:
ports: - "7777:8086"如果您需要自定义qBittorrent WebUI的访问密码(效果相当于上文中通过-p或--password参数传入的密码),请修改如下字段中的fnosnb为您所需要的密码,注意,此处请勿将密码修改为非ASCII字符,否则qBittorrent的WebUI将错误转译密码导致登录失败:
environment: - PASSWORD=fnosnb⚠️ 只要您的用户名不是Qiqi,您必须将以下内容中的Qiqi替换为您的用户名:
volumes: - /home/Qiqi/qbt.sock:/app/qbt.sock然后开始构建并启动,如下。
构建镜像,启动容器
有两种方法完成这件事。
SSH
SSH访问您的主机,然后在含有Dockerfile、docker-compose.yml以及二进制文件fnos-qb-proxy_linux-amd64的目录下执行docker compose up -d。
fnOS WebUI / 飞牛OS网页版
- 将含有
Dockerfile以及二进制文件fnos-qb-proxy_linux-amd64的目通过您喜爱的方式上传到您的飞牛,注意此时不要上传docker-compose.yml,否则可能会出现错误。并且请注意,目录需要上传到一个您接下来操作的账户能够访问的目录下。 - 登录您的飞牛OS网页版,进入Docker应用,在边栏中选择Compose,选择
新建项目 - 填写
项目名称,选择第一步中上传的文件夹,此时在对话框中上传docker-compose.yml,或者复制并粘贴docker-compose.yml的全部内容,注意不要打乱格式。 - 选择
确定
此时您的容器应该正常运行,并且您将会在7777或您指定的端口号上访问飞牛自带的trim-qbittorrent的WebUI。
确保下载中心服务在Docker服务之前启动
我们注意到在fnOS中,Docker服务可能在下载中心启动之前完成启动,导致~/qbt.sock被Docker意外占用,进而导致下载中心携带的的qBittorrent进程无法正常启动。因此,我们需要确保下载中心服务在Docker服务之前启动,具体方法为如下。
在终端/SSH中运行sudo systemctl edit docker.service,默认情况下,这将打开一个由Nano编辑器承载的/etc/systemd/system/docker.service.d/override.conf编辑窗口,此时在
### Anything between here and the comment below will become the new contents of the file(从1开始数,通常位于第2行)
以及
### Lines below this comment will be discarded(通常位于第6行)
这两行注释(通常显示为蓝色)之间添加如下内容:
[Unit]After=dlcenter.service确保前几行看起来像是:
### Editing /etc/systemd/system/docker.service.d/override.conf### Anything between here and the comment below will become the new contents of the file
[Unit]After=dlcenter.service
### Lines below this comment will be discarded
### /etc/systemd/system/docker.service这将使dlcenter.service(fnOS的下载中心服务,亦负责启动自带的qBittorrent)在docker.service之前运行。
最后,运行sudo systemctl daemon-reload来使得这些修改生效。
撒花🎉。如果是像我一样要通过Docker运行并接入PeerBanHelper,还可以通过docker inspect {Container}来获取Docker提供的容器DNS名称,解决容器间访问时的IP变换问题。
更好的BitTorrent网络环境,这何尝不是一种TECH OTAKUS SAVE THE WORLD呢。