services: vpn: container_name: vpn image: qmcgaw/gluetun:v3.40 cap_add: - NET_ADMIN # Quin does not like these devices: - /dev/net/tun:/dev/net/tun volumes: - ${DOWNLOAD_ETC_PATH}/gluetun:/gluetun environment: - VPN_SERVICE_PROVIDER=private internet access - SERVER_REGIONS=Netherlands - OPENVPN_USER=${PIA_USERNAME} - OPENVPN_PASSWORD=${PIA_PASSWORD} - UPDATER_PERIOD=24h ports: - 9091:9091 # Transmission - 51413:51413 # Transmission - 51413:51413/udp # Transmission - 9696:9696 # Prowlarr - 7878:7878 # Radarr - 8989:8989 # Sonarr - 3333:3333 # bitmagnet API and WebUI port - 3334:3334/tcp # bitmagnet BitTorrent ports - 3334:3334/udp # bitmagnet BitTorrent ports # - 5055:5055 # seerr # - 8112:8112 # Deluge # - 6881:6881 # Deluge # - 6881:6881/udp # Deluge # - 58846:58846 # idk Deluge restart: unless-stopped transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission network_mode: "service:vpn" environment: - TZ=${TZ} - PUID=1000 - PGID=1000 volumes: - ${DOWNLOAD_ETC_PATH}/transmission:/config - ${DOWNLOAD_IN_PROGRESS_PATH}:/downloads - /mnt/mega/jellyfinMedia:/media restart: unless-stopped prowlarr: container_name: prowlarr image: lscr.io/linuxserver/prowlarr:latest network_mode: "service:vpn" environment: - TZ=${TZ} - PUID=1000 - PGID=1000 volumes: - ${DOWNLOAD_ETC_PATH}/prowlarr:/config depends_on: vpn: condition: service_started restart: true required: true restart: unless-stopped radarr: image: lscr.io/linuxserver/radarr:latest network_mode: "service:vpn" container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=${TZ} volumes: - ${DOWNLOAD_ETC_PATH}/radarr:/config - ${DOWNLOAD_IN_PROGRESS_PATH}/incomplete:/downloads/incomplete #optional - /mnt/mega/app_data/complete_torrent_downloads/radarr:/downloads/radarr #optional - /mnt/mega/jellyfinMedia:/media depends_on: vpn: condition: service_started restart: true required: true prowlarr: condition: service_started restart: true required: true restart: unless-stopped sonarr: image: lscr.io/linuxserver/sonarr:latest network_mode: "service:vpn" container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=${TZ} volumes: - ${DOWNLOAD_ETC_PATH}/sonarr:/config - ${DOWNLOAD_IN_PROGRESS_PATH}/incomplete:/downloads/incomplete #optional - /mnt/mega/app_data/complete_torrent_downloads/sonarr:/downloads/sonarr #optional - /mnt/mega/jellyfinMedia:/media depends_on: vpn: condition: service_started restart: true required: true prowlarr: condition: service_started restart: true required: true restart: unless-stopped bitmagnet: image: ghcr.io/bitmagnet-io/bitmagnet:latest container_name: bitmagnet restart: unless-stopped network_mode: "service:vpn" environment: - POSTGRES_PASSWORD=${DOWNLOAD_BITMAGENT_DB_PASS} - TMDB_API_KEY=${TMDB_API_KEY} volumes: - ${SOUPCLOWN_ETC_PATH}/downloadin/bitmagnet/etc:/root/.config/bitmagnet command: - worker - run - --keys=http_server - --keys=queue_server # disable the next line to run without DHT crawler - --keys=dht_crawler depends_on: postgres: condition: service_healthy postgres: image: postgres:16-alpine container_name: bitmagnet-postgres network_mode: "service:vpn" volumes: - ${SOUPCLOWN_ETC_PATH}/downloadin/bitmagnet/postgresdata:/var/lib/postgresql/data restart: unless-stopped environment: - POSTGRES_PASSWORD=${DOWNLOAD_BITMAGENT_DB_PASS} - POSTGRES_DB=bitmagnet - PGUSER=postgres shm_size: 1g healthcheck: test: - CMD-SHELL - pg_isready start_period: 20s interval: 10s seerr: image: ghcr.io/seerr-team/seerr:latest init: true container_name: seerr restart: unless-stopped ports: - 5055:5055 environment: - TZ=${TZ} - LOG_LEVEL=debug volumes: - ${SOUPCLOWN_ETC_PATH}/seer:/app/config healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1 start_period: 20s timeout: 3s interval: 15s retries: 3