Last active
June 27, 2025 13:55
-
-
Save efazati/35772ee26e936f4e9fac4be345531988 to your computer and use it in GitHub Desktop.
Media Center with Jellyfin - *arr and qbittorrent behind vpn docker compose
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
services: | |
vpn: | |
image: qmcgaw/gluetun | |
container_name: vpn | |
cap_add: | |
- NET_ADMIN | |
- NET_RAW | |
# devices: | |
# - /dev/net/tun | |
environment: | |
- TZ=Europe/Dublin | |
- VPN_SERVICE_PROVIDER=protonvpn | |
- OPENVPN_USER=xxx+pmp | |
- OPENVPN_PASSWORD=xxx | |
- SERVER_COUNTRIES=Netherlands | |
- VPN_PORT_FORWARDING_PROVIDER=protonvpn | |
- VPN_PORT_FORWARDING=on | |
- FIREWALL_OUTBOUND_SUBNETS=172.20.0.0/16,192.168.0.0/22 | |
- FIREWALL_VPN_INPUT_PORTS=9092,6881 # Allow incoming traffic on these ports | |
- VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c 'wget -O- --retry-connrefused --post-data "json={\"listen_port\":{{PORTS}}}" http://127.0.0.1:9092/api/v2/app/setPreferences 2>&1' | |
ports: | |
- 9092:9092 # qBittorrent WebUI | |
- 6881:6881 # qBittorrent | |
- 6881:6881/udp # qBittorrent | |
- 9091:9091 # Transmission WebUI | |
restart: unless-stopped | |
networks: | |
- media_server_network | |
qbittorrent: | |
image: linuxserver/qbittorrent:latest | |
container_name: qbittorrent | |
environment: | |
- PUID=1000 | |
- PGID=1000 | |
- TZ=Europe/Dublin | |
- WEBUI_PORT=9092 | |
volumes: | |
- /share/Media/qbittorrent/downloads:/downloads | |
- /share/Media/qbittorrent/config:/config | |
network_mode: "service:vpn" | |
depends_on: | |
- vpn | |
radarr: | |
image: linuxserver/radarr | |
container_name: radarr | |
restart: always | |
# network_mode: "service:vpn" | |
ports: | |
- "7878:7878" | |
# network_mode: "host" | |
environment: | |
- TZ=Europe/Dublin | |
- PGID=1000 | |
- PUID=1000 | |
volumes: | |
- /share/Media/radarr:/config | |
- /share/Media/qbittorrent/downloads:/downloads | |
# - /share/Media/transmission/downloads:/downloads | |
- /share/Media/jellyfin/movies:/movies | |
depends_on: | |
- "qbittorrent" | |
networks: | |
- media_server_network | |
sonarr: | |
image: linuxserver/sonarr | |
container_name: sonarr | |
restart: always | |
environment: | |
- TZ=Europe/Dublin | |
- PGID=1000 | |
- PUID=1000 | |
# network_mode: "service:vpn" | |
ports: | |
- "8989:8989" | |
# network_mode: "host" | |
volumes: | |
- /share/Media/sonarr/config:/config | |
- /share/Media/jellyfin/tv:/tv | |
- /share/Media/qbittorrent/downloads:/downloads | |
# - /share/Media/transmission/downloads:/downloads | |
depends_on: | |
- "qbittorrent" | |
networks: | |
- media_server_network | |
bazarr: | |
image: linuxserver/bazarr | |
container_name: bazarr | |
environment: | |
- TZ=Europe/Dublin | |
- PGID=1000 | |
- PUID=1000 | |
volumes: | |
- /share/Media/bazarr:/config | |
- /share/Media/jellyfin/movies:/movies #optional | |
- /share/Media/jellyfin/tv:/tv #optional | |
ports: | |
- 6767:6767 | |
# network_mode: "host" | |
restart: always | |
networks: | |
- media_server_network | |
prowlarr: | |
image: linuxserver/prowlarr:develop | |
container_name: prowlarr | |
restart: always | |
environment: | |
- TZ=Europe/Dublin | |
- PGID=1000 | |
- PUID=1000 | |
# network_mode: "service:vpn" | |
ports: | |
- "9696:9696" | |
# network_mode: "host" | |
cap_add: | |
- NET_ADMIN | |
volumes: | |
- /share/Media/prowlarr:/config | |
- /share/Media/qbittorrent/downloads:/downloads # transmission watch directory | |
# - /share/Media/transmission/downloads:/downloads | |
jellyseerr: | |
image: fallenbagel/jellyseerr:latest | |
container_name: jellyseerr | |
environment: | |
- TZ=Europe/Dublin | |
- PGID=1000 | |
- PUID=1000 | |
ports: | |
- 5055:5055 | |
# network_mode: "host" | |
volumes: | |
- /share/Media/jellyseerr:/app/config | |
restart: unless-stopped | |
networks: | |
- media_server_network | |
jellyfin: | |
image: jellyfin/jellyfin:latest | |
container_name: jellyfin | |
environment: | |
- PUID=1000 | |
- PGID=1000 | |
- TZ=Europe/Dublin | |
volumes: | |
- /share/Media/jellyfin/config:/config | |
- /share/Media/jellyfin/cache:/cache | |
- /share/Media/jellyfin/movies:/movies | |
- /share/Media/jellyfin/tv:/tv | |
ports: | |
- 8096:8096 | |
- 8920:8920 # Optional HTTPS port | |
- 7359:7359/udp # Optional: allows clients to discover Jellyfin on the local network | |
- 1900:1900/udp # Optional: DLNA | |
restart: unless-stopped | |
devices: | |
- /dev/dri:/dev/dri # Optional: for hardware transcoding if available | |
# network_mode: "host" # Optional: uncomment if you prefer host networking | |
networks: | |
- media_server_network | |
networks: | |
media_server_network: | |
driver: bridge |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is my .env file