services: # ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ █████╗ ██████╗ ██████╗ # ██╔══██╗██╔══██╗██╔═══██╗██║ ██║██║ ██╔══██╗██╔══██╗██╔══██╗ # ██████╔╝██████╔╝██║ ██║██║ █╗ ██║██║ ███████║██████╔╝██████╔╝ # ██╔═══╝ ██╔══██╗██║ ██║██║███╗██║██║ ██╔══██║██╔══██╗██╔══██╗ # ██║ ██║ ██║╚██████╔╝╚███╔███╔╝███████╗██║ ██║██║ ██║██║ ██║ # ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═ prowlarr: image: linuxserver/prowlarr:latest container_name: prowlarr volumes: - ${ARRPATH}Prowlarr/config:/config - ${ARRPATH}Prowlarr/backup:/data/Backup - ${ARRPATH}Downloads:/downloads restart: unless-stopped env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun # ███████╗ ██████╗ ███╗ ██╗ █████╗ ██████╗ ██████╗ # ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██╔══██╗██╔══██╗ # ███████╗██║ ██║██╔██╗ ██║███████║██████╔╝██████╔╝ # ╚════██║██║ ██║██║╚██╗██║██╔══██║██╔══██╗██╔══██╗ # ███████║╚██████╔╝██║ ╚████║██║ ██║██║ ██║██║ ██║ # ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ sonarr: image: linuxserver/sonarr:latest container_name: sonarr volumes: - ${ARRPATH}Sonarr/config:/config - ${ARRPATH}Sonarr/backup:/data/Backup - ${ARRPATH}Sonarr/tvshows:/data/tvshows - ${ARRPATH}Downloads:/downloads restart: unless-stopped env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun # ██████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ # ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗ # ██████╔╝███████║██║ ██║███████║██████╔╝██████╔╝ # ██╔══██╗██╔══██║██║ ██║██╔══██║██╔══██╗██╔══██╗ # ██║ ██║██║ ██║██████╔╝██║ ██║██║ ██║██║ ██║ # ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ radarr: image: linuxserver/radarr:latest container_name: radarr volumes: - ${ARRPATH}Radarr/config:/config - ${ARRPATH}Radarr/movies:/data/movies - ${ARRPATH}Radarr/backup:/data/Backup - ${ARRPATH}Downloads:/downloads restart: unless-stopped env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun # ██╗ ██╗██████╗ █████╗ ██████╗ ██████╗ # ██║ ██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗ # ██║ ██║██║ ██║███████║██████╔╝██████╔╝ # ██║ ██║██║ ██║██╔══██║██╔══██╗██╔══██╗ # ███████╗██║██████╔╝██║ ██║██║ ██║██║ ██║ # ╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ lidarr: image: linuxserver/lidarr:latest container_name: lidarr volumes: - ${ARRPATH}Lidarr/config:/config - ${ARRPATH}Lidarr/music:/data/musicfolder - ${ARRPATH}Downloads:/downloads restart: unless-stopped env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun # ██████╗ ███████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗ # ██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗ # ██████╔╝█████╗ ███████║██║ ██║███████║██████╔╝██████╔╝ # ██╔══██╗██╔══╝ ██╔══██║██║ ██║██╔══██║██╔══██╗██╔══██╗ # ██║ ██║███████╗██║ ██║██████╔╝██║ ██║██║ ██║██║ ██║ # ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ readarr: image: linuxserver/readarr:develop container_name: readarr volumes: - ${ARRPATH}Readarr/config:/config - ${ARRPATH}Readarr/books:/data/books - ${ARRPATH}Downloads:/downloads restart: unless-stopped env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr environment: - LOG_LEVEL=debug - TZ=Europe/Ljubljana - PORT=5055 #optional volumes: - ${ARRPATH}JELLYSEERR/config:/app/config restart: unless-stopped env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun # ██╗███████╗██╗ ██╗ ██╗ ██╗███████╗██╗███╗ ██╗ # ██║██╔════╝██║ ██║ ╚██╗ ██╔╝██╔════╝██║████╗ ██║ # ██║█████╗ ██║ ██║ ╚████╔╝ █████╗ ██║██╔██╗ ██║ # ██ ██║██╔══╝ ██║ ██║ ╚██╔╝ ██╔══╝ ██║██║╚██╗██║ # ╚█████╔╝███████╗███████╗███████╗██║ ██║ ██║██║ ╚████║ # ╚════╝ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ jellyfin: image: linuxserver/jellyfin container_name: jellyfin volumes: - ${ARRPATH}Jellyfin/config:/config - ${ARRPATH}Radarr/movies:/data/Movies - ${ARRPATH}Sonarr/tvshows:/data/TVShows - ${ARRPATH}Lidarr/music:/data/Music - ${ARRPATH}Readarr/books:/data/Books env_file: - '.env' restart: unless-stopped network_mode: "service:gluetun" depends_on: - gluetun # ██████╗ ██████╗ ██╗████████╗████████╗ ██████╗ ██████╗ ██████╗ ███████╗███╗ ██╗████████╗ # ██╔═══██╗██╔══██╗██║╚══██╔══╝╚══██╔══╝██╔═══██╗██╔══██╗██╔══██╗██╔════╝████╗ ██║╚══██╔══╝ # ██║ ██║██████╔╝██║ ██║ ██║ ██║ ██║██████╔╝██████╔╝█████╗ ██╔██╗ ██║ ██║ # ██║▄▄ ██║██╔══██╗██║ ██║ ██║ ██║ ██║██╔══██╗██╔══██╗██╔══╝ ██║╚██╗██║ ██║ # ╚██████╔╝██████╔╝██║ ██║ ██║ ╚██████╔╝██║ ██║██║ ██║███████╗██║ ╚████║ ██║ # ╚══▀▀═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝ qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent restart: unless-stopped labels: - "com.centurylinklabs.watchtower.enable=false" volumes: - ${ARRPATH}qbittorrent/config:/config - ${ARRPATH}Downloads:/downloads # Removed port mappings as they'll be exposed via gluetun environment: - WEBUI_PORT=8080 - TORRENTING_PORT=6881 healthcheck: start_period: 15s env_file: - '.env' network_mode: "service:gluetun" depends_on: - gluetun gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: # Expose ports for all services that need to be accessible - 8080:8080 # qBittorrent WebUI - 6881:6881 # qBittorrent - 6881:6881/udp # qBittorrent - 9696:9696 # Prowlarr - 8989:8989 # Sonarr - 7878:7878 # Radarr - 8686:8686 # Lidarr - 8787:8787 # Readarr - 5055:5055 # Jellyseerr - 8096:8096 # Jellyfin - 7359:7359/udp # Jellyfin discovery - 1900:1900/udp # Jellyfin DLNA environment: - VPN_SERVICE_PROVIDER=protonvpn - OPENVPN_USER=IWCz8b1ulCddlQ9E - OPENVPN_PASSWORD=rWw8wsLtVAKNdXbEw4KYio37j6g6Jdv1 - SERVER_COUNTRIES=Netherlands # Added settings to make gluetun work better as a gateway - FIREWALL_VPN_INPUT_PORTS=8080,6881,9696,8989,7878,8686,8787,5055,8096,7359,1900 - DOT=off - DNS_KEEP_NAMESERVER=on restart: unless-stopped