services: # THE GATEWAY (VPN) gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: # VPN Ports - 8080:8080 # qBittorrent WebUI - 6881:6881 # qBittorrent TCP - 6881:6881/udp # qBittorrent UDP - 9696:9696 # Prowlarr WebUI volumes: - ./gluetun:/gluetun environment: - VPN_SERVICE_PROVIDER=mullvad - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=${VPN_PRIVATE_KEY} - WIREGUARD_ADDRESSES=${VPN_ADDRESS} - OWNED_ONLY=yes restart: unless-stopped # THE DOWNLOADER (Routed through Gluetun) qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - WEBUI_PORT=8080 volumes: - ./qbit_config:/config - /mnt/data:/data network_mode: "service:gluetun" depends_on: gluetun: condition: service_healthy restart: unless-stopped # THE INDEXER (Routed through Gluetun) # Routes through VPN to bypass ISP blocks on torrent sites prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=1000 - PGID=1000 volumes: - ./prowlarr_config:/config network_mode: "service:gluetun" depends_on: gluetun: condition: service_healthy restart: unless-stopped # RADARR (Movies) radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 volumes: - ./radarr_config:/config - /mnt/data:/data ports: - 7878:7878 depends_on: gluetun: condition: service_healthy restart: unless-stopped # SONARR (TV Shows) sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 volumes: - ./sonarr_config:/config - /mnt/data:/data ports: - 8989:8989 depends_on: gluetun: condition: service_healthy restart: unless-stopped # LIDARR (Music) lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr environment: - PUID=1000 - PGID=1000 volumes: - ./lidarr_config:/config - /mnt/data:/data ports: - 8686:8686 depends_on: gluetun: condition: service_healthy restart: unless-stopped