services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- 3672:3672/tcp # port for deluge
- 6783:6783 # qBittorrent
volumes:
- /volume1/docker/gluetun:/gluetun
- /volume1/docker/gluetun/wireguard/wg0.conf:/gluetun/wireguard/wg0.conf:ro
environment:
- PUID=REDACTED #CHANGE_TO_YOUR_UID
- PGID=REDACTED #CHANGE_TO_YOUR_GID
- TZ=Europe/Brussels #CHANGE_TO_YOUR_TZ
- VPN_SERVICE_PROVIDER=custom
- VPN_TYPE=wireguard #change as per wiki
- VPN_PORT_FORWARDING=on
- VPN_PORT_FORWARDING_PROVIDER=protonvpn
- SHADOWSOCKS=off
- FIREWALL_OUTBOUND_SUBNETS=172.20.0.0/16,REDACTED/24 #change this in line with your subnet see note on guide.
network_mode: synobridge
labels:
- com.centurylinklabs.watchtower.enable=false
security_opt:
- no-new-privileges:true
restart: always
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=REDACTED #CHANGE_TO_YOUR_UID
- PGID=REDACTED #CHANGE_TO_YOUR_GID
- TZ=Europe/Brussels #CHANGE_TO_YOUR_TZ
- WEBUI_PORT=6783
- UMASK=REDACTED
volumes:
- /volume1/docker/qbittorrent:/config
- /volume1/data/torrents:/data/torrents
network_mode: service:gluetun # run on the vpn network
depends_on:
gluetun:
condition: service_healthy
security_opt:
- no-new-privileges:true
restart: always
linuxserver-deluge:
image: linuxserver/deluge:latest
container_name: deluge
environment:
- PUID=REDACTED #CHANGE_TO_YOUR_UID
- PGID=REDACTED #CHANGE_TO_YOUR_GID
- TZ=Europe/Brussels #CHANGE_TO_YOUR_TZ
- DELUGE_LOGLEVEL=error #optional
- UMASK=REDACTED
volumes:
- /volume1/docker/deluge:/config
- /volume1/data/torrents:/data/torrents
network_mode: service:gluetun # run on the vpn network
depends_on:
gluetun:
condition: service_healthy
security_opt:
- no-new-privileges:true
restart: always
deluge2qbit:
image: amit94302/deluge2qbit:latest
container_name: deluge2qbit
network_mode: service:gluetun # run on the vpn network
environment:
# --- Deluge Settings ---
- DELUGE_HOST=gluetun
- DELUGE_PORT=3672
- DELUGE_USER=REDACTED
- DELUGE_PASS=REDACTED
- DELUGE_MIGRATE_LABELS=REDACTED
- DELUGE_REMOVE=false
# --- qBittorrent Settings ---
- QBIT_HOST=gluetun
- QBIT_PORT=6783
- QBIT_USER=REDACTED
- QBIT_PASS=REDACTED
- QBIT_SET_CATEGORY=true
- 'QBIT_CATEGORY_MAP=REDACTED'
- QBIT_ADD_TAGS=true
- QBIT_CUSTOM_TAGS=deluge2qbit-migrated
- QBIT_SAVE_PATH=/downloads/completed
- QBIT_RESUME=false
- DELUGE_STATE_PATH=/deluge/state
- TORRENT_FILE_DEST_PATH=/torrents
volumes:
# ⚠️ CHANGE THESE HOST PATHS
# Path where Deluge stores its state files (e.g., torrents, logs)
- /volume1/docker/deluge:/deluge:ro
# Path where your torrent data is stored. This MUST be the same path qBittorrent uses.
- /volume1/data/torrents/completed:/downloads/completed
# A temporary path to store .torrent files during migration
- /volume1/docker/deluge2qbit/torrents:/torrents
security_opt:
- no-new-privileges:true
depends_on:
- gluetun # Ensure VPN is up first
restart: no