Downloads

Home

Services running on PCT 101 (downloads, 192.168.2.190). All standalone containers — not Swarm-managed.


Services

Container URL Port Purpose
qbittorrent-mam qbittorrent.carr-family.org 8080 MyAnonamouse torrent client
qbittorrent-vpn qbittorrent-vpn.carr-family.org 8081 VPN-routed general torrents
gluetun-proton ProtonVPN gateway for qbittorrent-vpn
qui qui.carr-family.org 7476 Multi-instance qBittorrent web UI

Compose files on PCT 101: /root/stacks/qbittorrent-mam/docker-compose.yml, /root/stacks/bittorrent-vpn/docker-compose.yml


qbittorrent-mam

MAM (MyAnonamouse) torrent client. Image: linuxserver/qbittorrent:4.6.7.

  • WebUI: 192.168.2.190:8080, creds: admin / 32Ab0321!!
  • Volume: /mnt/tank/media:/data (only — bookingest accessible as /data/bookingest via this mount; separate mount breaks hardlinks)
  • Config: /mnt/tank/appdata/qbittorrent/

Tuned settings (4-core Xeon E5-1620 v2, 8 GB RAM, 1 Gbps):

  • max_active_downloads: 70
  • disk_cache: 512 MB
  • max_connec: 1000, max_connec_per_torrent: 200

Categories

Category Save Path Used By
MAM /data/content/books-seeds Direct MAM ebook downloads
audiobooks /data/content/audiobooks Audiobookshelf library
books-shelfmark /data/bookingest (default) Shelfmark ebooks

On-completion Hook

Script: /mnt/tank/appdata/qbittorrent/scripts/hardlink-to-ingest.sh — fires only for MAM category. Hardlinks by extension, preserving directory structure:

  • .epub/.mobi/.azw3/.pdf etc. → /data/bookingest (CWA ingest)
  • .m4b/.mp3/.m4a/.aax etc. → /data/content/audiobooks (Audiobookshelf)
  • .cbz/.cbr/.cb7/.cbt etc. → /data/content/comics (Komga)

Hardlinks work because bookingest and books-seeds are both on the tank/media ZFS dataset.

Fixing Incorrect Save Paths

The API setLocation returns 200 but silently fails. Reliable method:

  1. docker kill --signal SIGKILL qbittorrent-mam
  2. Patch qBt-savePath AND save_path in /mnt/tank/appdata/qbittorrent/qBittorrent/BT_backup/<hash>.fastresume
  3. Delete all *.fastresume.* stale backup files
  4. docker start qbittorrent-mam
  5. Force-recheck the affected torrents

qbittorrent-vpn + gluetun-proton

VPN-routed torrents. qbittorrent-vpn uses network_mode: "service:gluetun" — both containers excluded from Watchtower (com.centurylinklabs.watchtower.enable=false).

  • Compose: /root/stacks/bittorrent-vpn/docker-compose.yml on PCT 101
  • WebUI: 192.168.2.190:8081 (internal), qbittorrent-vpn.carr-family.org (external)
  • VPN: ProtonVPN via gluetun

qui

Multi-instance qBittorrent web UI at qui.carr-family.org. Not in Swarm — static route in routes.yml192.168.2.190:7476.

Instances:

  • qbittorrent-mamhttp://192.168.2.190:8080 (admin / 32Ab0321!!)
  • qbittorrent-vpnhttp://192.168.2.190:8081
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9