Skip to content
Torrent icon

Torrent

I used various torrent clients but qBittorrent is the easiest yet complete one.

It’s used by applications in Media-Center to download media.

The stack consists of :

  • qBittorrent : The actual torrent client
  • App iconGluetun : A VPN client in a docker container

qBittorrent network traffic is routed through the gluetun container and thus through our VPN of choice (ProtonVPN).

services:
qbittorrent:
container_name: torrent_qbittorrent
image: ghcr.io/hotio/qbittorrent:release-5.0.5
ports:
- 8086:8080
environment:
- PUID=0
- PGID=0
- UMASK=002
- TZ=Etc/UTC
- WEBUI_PORTS=8080/tcp,8080/udp
- VPN_ENABLED=true
- VPN_CONF=wg0
- VPN_PROVIDER=proton
- VPN_AUTO_PORT_FORWARD=true
- VPN_LAN_NETWORK=192.168.31.0/24,100.64.0.0/10
- VPN_KEEP_LOCAL_DNS=false
- VPN_FIREWALL_TYPE=auto
- VPN_HEALTHCHECK_ENABLED=false
- PRIVOXY_ENABLED=false
- UNBOUND_ENABLED=false
volumes:
- /data/apps/torrent/config:/config
- /data/apps/media-center/torrents:/data/apps/media-center/torrents
cap_add:
- NET_ADMIN
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=1
devices:
- /dev/net/tun:/dev/net/tun
networks:
- homelab
labels:
- traefik.enable=true
- traefik.http.routers.qbittorrent.rule=Host(`torrent.zrx.sh`)
- traefik.http.services.qbittorrent.loadbalancer.server.port=8086
- traefik.http.routers.qbittorrent.middlewares=homelab-whitelist@file
- traefik.http.routers.qbittorrent.tls=true
- traefik.http.routers.qbittorrent.tls.certresolver=production
- traefik.http.routers.qbittorrent.tls.domains[0].main=zrx.sh
- traefik.http.routers.qbittorrent.tls.domains[0].sans=*.zrx.sh
networks:
homelab:
external: true