Skip to content

Instantly share code, notes, and snippets.

@efazati
Last active June 27, 2025 13:55
Show Gist options
  • Save efazati/35772ee26e936f4e9fac4be345531988 to your computer and use it in GitHub Desktop.
Save efazati/35772ee26e936f4e9fac4be345531988 to your computer and use it in GitHub Desktop.
Media Center with Jellyfin - *arr and qbittorrent behind vpn docker compose
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
@efazati
Copy link
Author

efazati commented Aug 14, 2023

This is my .env file

MOUNT_POINT=/mnt/main/NAS
TZ=Europe/Dublin
PUID=1000
PGID=1000
VERSION=docker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment