I’m trying to get Qbittorrent set up within Docker on my home server and want to configure port forwarding through my VPN for all of those Linux ISOs. Ideally, I also want to get a pipeline going with the *arr stack. I’ve heard the easiest way to do this is with Gluetun but I can’t for the life of me figure it out or know how to test it. Anyone been through something similar?
Here is my current Docker Compose for reference:
services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=airvpn
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY="[redacted]"
- WIREGUARD_PRESHARED_KEY="[redacted]
- WIREGUARD_ADDRESSES=10.131.184.14/32
- FIREWALL_VPN_INPUT_PORTS=8069
- SERVER_COUNTRIES=United States
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- /home/fenndev/.config/gluetun:/config
ports:
- 9091:9091 # WebUI
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
qbit:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbit
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=America/Los_Angeles # Timezone set to Los A>
- WEBUI_PORT=9091 # Qbittorrent webUI port
volumes:
- /home/fenndev/.config/qbit:/config # Configura>
- /home/fenndev/torrents:/downloads # Torrent da>
depends_on:
glueten:
condition: service_healthy
To enable port forwarding with gluetun see the port forwarding section in the gluetun wiki on their github page. It’s pretty clear what you need to do there.
For port forwarding with qbit, gluetun’s v3.40.0 release introduced an environment variable that allows the running of a script whenever the VPN changes port (see PR https://github.com/qdm12/gluetun/pull/2399). If you take a look at the PR some people shared commands to put under the env variable VPN_PORT_FORWARDING_UP_COMMAND.
So all you need to do is put that new environment variable in the environment section, take one of the example commands that uses the qbitorrent API to change the port when needed, and it should be all.
To test if port forwarding works qbittorrent will display a little green planet in the bottom bar, and if port forwarding is not working, a fire (to say it’s firewalled).