Document qBittorrent migration to gluetun (VPN container)

This commit is contained in:
2026-08-07 15:28:37 +00:00
parent 2b2f586487
commit 18ec2a2e8c
+4 -1
View File
@@ -155,6 +155,8 @@ All stack data volumes are stored at `/srv/docker/<stack-name>/` on each host us
| Radarr | lscr.io/linuxserver/radarr:latest | 7878 | Movie automation | | Radarr | lscr.io/linuxserver/radarr:latest | 7878 | Movie automation |
| Sonarr | lscr.io/linuxserver/sonarr:latest | 8989 | TV show automation | | Sonarr | lscr.io/linuxserver/sonarr:latest | 8989 | TV show automation |
| Prowlarr | lscr.io/linuxserver/prowlarr:latest | 9696 | Indexer manager for Radarr/Sonarr | | Prowlarr | lscr.io/linuxserver/prowlarr:latest | 9696 | Indexer manager for Radarr/Sonarr |
| gluetun | qmcgaw/gluetun:latest | 8080 (proxied) | ProtonVPN gateway — qBittorrent runs behind this |
| qBittorrent | lscr.io/linuxserver/qbittorrent:latest | 8080 | Torrent client (network_mode: service:gluetun) |
| FlareSolverr | ghcr.io/flaresolverr/flaresolverr:latest | 8191 | Cloudflare bypass for indexers | | FlareSolverr | ghcr.io/flaresolverr/flaresolverr:latest | 8191 | Cloudflare bypass for indexers |
| Watchtower | containrrr/watchtower | — | Auto-updates arr-stack containers | | Watchtower | containrrr/watchtower | — | Auto-updates arr-stack containers |
| Node Exporter | prom/node-exporter:latest | 9100 (host) | Prometheus metrics | | Node Exporter | prom/node-exporter:latest | 9100 (host) | Prometheus metrics |
@@ -162,6 +164,8 @@ All stack data volumes are stored at `/srv/docker/<stack-name>/` on each host us
Media storage is mounted at `/mnt/media` on the jellyfin host and presented as `/data` inside Radarr and Sonarr. Media storage is mounted at `/mnt/media` on the jellyfin host and presented as `/data` inside Radarr and Sonarr.
**qBittorrent + gluetun (added 2026-08-07):** qBittorrent used to run natively (`qbittorrent-nox` systemd service) bound to a ProtonVPN desktop-app interface (`proton0`). When that GUI-managed tunnel dropped, qBittorrent had no way to reconnect without an interactive desktop session, silently killing all downloads. It's now containerized: `qbittorrent` runs with `network_mode: service:gluetun`, so it shares gluetun's network namespace entirely — if the VPN tunnel drops, qBittorrent has zero network access (fails closed, never falls back to the real IP) until gluetun auto-reconnects, which it does on its own. Compose file: `/srv/docker/qbittorrent/docker-compose.yml` on the jellyfin host. Uses ProtonVPN OpenVPN credentials (see API Codes.md). qBittorrent's config volume (`/srv/docker/qbittorrent/config`) also mounts the media disk at the identical path `/mnt/media` (not `/data`) so it matches Sonarr/Radarr's existing Remote Path Mapping (`/mnt/media/``/data/`) and the pre-existing categories (`tv-sonarr`, `movies-radarr`) and resume data needed no path rewriting during migration.
--- ---
### jgpc — 192.168.88.41 — AI / Workstation Host ### jgpc — 192.168.88.41 — AI / Workstation Host
@@ -255,4 +259,3 @@ PBS has two datastores:
| AI (Open WebUI) | https://ai.jgitta.com | | AI (Open WebUI) | https://ai.jgitta.com |
| Guacamole | https://apache.jgitta.com | | Guacamole | https://apache.jgitta.com |
| Vaultwarden | https://vault.jgitta.com | | Vaultwarden | https://vault.jgitta.com |