alist + qbittorrent + aria2 docker-compose 配置

编辑 / daily / 发布于2024-02-25 / 更新于2024-03-01 / 阅读 323

alist + qbittorrent + aria2 docker-compose 配置

踩坑记录

  • 开始用了 alist-aria2 image ,发现没有qbittorrent ,然后自己找了个qbittorrent docker结果alist死活连不上,最后发现,alist容器里访问localhost只能访问本容器内的localhost,访问不到宿主机,也就不可能访问到qbittorrent服务的端口。最后把 alist-aria2 网络模式改成host模式解决。

  • 然后发现 alist-aria2 docker 只能以PUID=0,PGID=0 运行时, 才能成功连接到内置的aria2服务,估计是权限问题,但是这样在docker外以非root身份访问修改时会有权限问题,最后自己一个一个搞吧。

另外不用 host 模式,内置的网络不行,但使用自己创建额外的网络好像也可行

# docker network create alist-net
networks:
  alist-net:
    driver: bridge      # 使用桥接模式的网络驱动
    external: true      # 表明这个网络是外部创建的,不由这个 Docker Compose 文件管理

#alist中
networks:
      - alist-net    # 将此服务连接到 alist-net网络

运行前

修改 WEBUI_PASSWORD,RPC_SECRET 这两个是qbittorrent,aria2 的密码。

volumes,ports 自己看着办,自己完全明白可以改,./alist:/opt/alist/data这个是必须的,涉及到qbittorrent,aria2 下载缓存移动的问题。

PUID和PGID 可以自己输入id 查看,为了方便可以全设置成0,就是后面在docker外以非root身份访问时会有权限问题。

xxx@debian:~$ id
uid=1000(xxx) gid=1000(xxx) 组=1000(xxx),996(docker)

然后 docker-compose up -d 运行容器

完成后去 http://ip:5244/@manage/settings/other 设置aria2 和 qbittorrent

aria2 密钥就是 RPC_SECRET 设置的值

qbittorrent 是这个形式 http://admin:admin@localhost:8181/

docker-compose.ymal

包括 qbittorrent、alist、Aria2-Pro、AriaNg 四个,都可以在相应端口通过web访问

version: '3.5'

services:
  qbittorrent:
    image: linuxserver/qbittorrent:latest
    container_name: qbittorrent
    # network_mode: 'host'
    environment:
      - PUID=1000
      - PGID=996
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8181  # 将外部端口更改为8181
      - WEBUI_USERNAME=admin  # 设置用户名
      - WEBUI_PASSWORD=admin  # 设置密码
    volumes:
      - ./qbittorrent/config:/config
      - ./qbittorrent/downloads:/downloads
      - ./alist:/opt/alist/data
    ports:
      - 8181:8181  # 映射到8181端口
      - 6881:6881
      - 6881:6881/udp
    restart: unless-stopped

  alist:
    image: xhofe/alist:latest
    container_name: alist
    network_mode: 'host'
    environment:
      - PUID=1000
      - PGID=996
      - UMASK=022
      - QBittorrent_ADDRESS=qbittorrent  # 使用qbittorrent容器的名称作为地址
      - QBittorrent_PORT=8181  # 设置qbittorrent的端口
    volumes:
      - ./alist:/opt/alist/data
    # ports:
    #   - 5244:5244
    restart: always

  Aria2-Pro:
    container_name: aria2-pro
    image: p3terx/aria2-pro
    environment:
      - PUID=1000
      - PGID=996
      - UMASK_SET=022
      - RPC_SECRET=admin # 配置Aria2 的 RPC secret 密钥,它将被用于 Alist 和 AriaNg 连接 Aria2
      - RPC_PORT=6800
      - LISTEN_PORT=6888
      - DISK_CACHE=64M
      # - IPV6_MODE=true
      - UPDATE_TRACKERS=true
      # - CUSTOM_TRACKER_URL=
      - TZ=Asia/Shanghai
    volumes:
      - ./aria2/config:/config
      - ./aria2/downloads:/downloads # 在:号前配置你要在主机上保存下载文件的路径
      - ./alist:/opt/alist/data
    ports:
      - "6800:6800"
      - "6888:6888"
      - "6888:6888/udp"
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: 1m

  # Aria2 的 Web UI
  AriaNg:
    container_name: ariang
    image: p3terx/ariang
    command: --port 6880 --ipv6
    ports:
      - "6880:6880"
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: 1m