services: transmission: image: lscr.io/linuxserver/transmission:latest environment: DOCKER_MODS: linuxserver/mods:transmission-env-var-settings PUID: 998 # media user PGID: 998 # media group UMASK: "002" TZ: America/Los_Angeles TRANSMISSION_DOWNLOAD_DIR: ${TORRENTARR_DOWNLOAD_DIR:?error}/complete TRANSMISSION_INCOMPLETE_DIR: ${TORRENTARR_DOWNLOAD_DIR:?error}/incomplete TRANSMISSION_SPEED_LIMIT_UP: "3750" TRANSMISSION_SPEED_LIMIT_UP_ENABLED: "true" TRANSMISSION_WATCH_DIR_ENABLED: "false" TRANSMISSION_RPC_PORT: ${TORRENTARR_TRANSMISSION_RPC_PORT:?error} TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "false" volumes: - ./transmission_config:/config - ${TORRENTARR_DOWNLOAD_DIR:?error}:${TORRENTARR_DOWNLOAD_DIR:?error} network_mode: "service:gluetun" restart: unless-stopped depends_on: gluetun: condition: service_healthy gluetun: image: qmcgaw/gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun volumes: - gluetun_forwarding:/tmp/gluetun_forwarding ports: - ${TORRENTARR_TRANSMISSION_RPC_PORT:?error}:${TORRENTARR_TRANSMISSION_RPC_PORT:?error} restart: unless-stopped environment: VPN_SERVICE_PROVIDER: protonvpn VPN_TYPE: wireguard VPN_PORT_FORWARDING: on VPN_PORT_FORWARDING_STATUS_FILE: /tmp/gluetun_forwarding/forwarded_port PORT_FORWARD_ONLY: "on" SERVER_COUNTRIES: United States SERVER_CITIES: Los Angeles UPDATER_PERIOD: 24h secrets: - wireguard_private_key port-watcher: build: ../port-watcher volumes: - gluetun_forwarding:/watch environment: PORT_FILE: /watch/forwarded_port TRANSMISSION_HOST: gluetun TRANSMISSION_PORT: ${TORRENTARR_TRANSMISSION_RPC_PORT:?error} restart: unless-stopped healthcheck: test: ["CMD", "test", "-f", "/watch/forwarded_port"] interval: 10s timeout: 60s retries: 10 start_period: 10s depends_on: transmission: condition: service_started gluetun: condition: service_healthy volumes: gluetun_forwarding: secrets: wireguard_private_key: file: ./secrets/wireguard_private_key