media-containers/docker-compose.yml
Gal Podlipnik ad7d8288ca vpn
2025-07-11 23:38:39 +00:00

205 lines
12 KiB
YAML

services:
# ██████╗ ██╗ ██╗ ██╗███████╗████████╗██╗ ██╗███╗ ██╗
# ██╔════╝ ██║ ██║ ██║██╔════╝╚══██╔══╝██║ ██║████╗ ██║
# ██║ ███╗██║ ██║ ██║█████╗ ██║ ██║ ██║██╔██╗ ██║
# ██║ ██║██║ ██║ ██║██╔══╝ ██║ ██║ ██║██║╚██╗██║
# ╚██████╔╝███████╗╚██████╔╝███████╗ ██║ ╚██████╔╝██║ ╚████║
# ╚═════╝ ╚══════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
env_file:
- '.env'
ports:
- 8080:8080 # 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
- 6881:6881 # qBittorrent
- 6881:6881/udp # qBittorrent
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- OPENVPN_USER=${NORDVPN_USERNAME}
- OPENVPN_PASSWORD=${NORDVPN_PASSWORD}
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
- TZ=${TZ}
volumes:
- ${ARRPATH}gluetun/config:/gluetun
restart: unless-stopped
networks:
- media_network
# ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ █████╗ ██████╗ ██████╗
# ██╔══██╗██╔══██╗██╔═══██╗██║ ██║██║ ██╔══██╗██╔══██╗██╔══██╗
# ██████╔╝██████╔╝██║ ██║██║ █╗ ██║██║ ███████║██████╔╝██████╔╝
# ██╔═══╝ ██╔══██╗██║ ██║██║███╗██║██║ ██╔══██║██╔══██╗██╔══██╗
# ██║ ██║ ██║╚██████╔╝╚███╔███╔╝███████╗██║ ██║██║ ██║██║ ██║
# ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═
prowlarr:
image: linuxserver/prowlarr:latest
container_name: prowlarr
volumes:
- ${ARRPATH}Prowlarr/config:/config
- ${ARRPATH}Prowlarr/backup:/data/Backup
- ${ARRPATH}Downloads:/downloads
network_mode: "service:gluetun"
restart: unless-stopped
env_file:
- '.env'
# ███████╗ ██████╗ ███╗ ██╗ █████╗ ██████╗ ██████╗
# ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██╔══██╗██╔══██╗
# ███████╗██║ ██║██╔██╗ ██║███████║██████╔╝██████╔╝
# ╚════██║██║ ██║██║╚██╗██║██╔══██║██╔══██╗██╔══██╗
# ███████║╚██████╔╝██║ ╚████║██║ ██║██║ ██║██║ ██║
# ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
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
network_mode: "service:gluetun"
restart: unless-stopped
env_file:
- '.env'
# ██████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗
# ██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗
# ██████╔╝███████║██║ ██║███████║██████╔╝██████╔╝
# ██╔══██╗██╔══██║██║ ██║██╔══██║██╔══██╗██╔══██╗
# ██║ ██║██║ ██║██████╔╝██║ ██║██║ ██║██║ ██║
# ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
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
network_mode: "service:gluetun"
restart: unless-stopped
env_file:
- '.env'
# ██╗ ██╗██████╗ █████╗ ██████╗ ██████╗
# ██║ ██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗
# ██║ ██║██║ ██║███████║██████╔╝██████╔╝
# ██║ ██║██║ ██║██╔══██║██╔══██╗██╔══██╗
# ███████╗██║██████╔╝██║ ██║██║ ██║██║ ██║
# ╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
lidarr:
image: linuxserver/lidarr:latest
container_name: lidarr
volumes:
- ${ARRPATH}Lidarr/config:/config
- ${ARRPATH}Lidarr/music:/data/musicfolder
- ${ARRPATH}Downloads:/downloads
network_mode: "service:gluetun"
restart: unless-stopped
env_file:
- '.env'
# ██████╗ ███████╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗
# ██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗
# ██████╔╝█████╗ ███████║██║ ██║███████║██████╔╝██████╔╝
# ██╔══██╗██╔══╝ ██╔══██║██║ ██║██╔══██║██╔══██╗██╔══██╗
# ██║ ██║███████╗██║ ██║██████╔╝██║ ██║██║ ██║██║ ██║
# ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
readarr:
image: linuxserver/readarr:develop
container_name: readarr
volumes:
- ${ARRPATH}Readarr/config:/config
- ${ARRPATH}Readarr/books:/data/books
- ${ARRPATH}Downloads:/downloads
network_mode: "service:gluetun"
restart: unless-stopped
env_file:
- '.env'
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
environment:
- LOG_LEVEL=debug
- TZ=Europe/Ljubljana
- PORT=5055 #optional
volumes:
- ${ARRPATH}JELLYSEERR/config:/app/config
network_mode: "service:gluetun"
restart: unless-stopped
env_file:
- '.env'
# ██╗███████╗██╗ ██╗ ██╗ ██╗███████╗██╗███╗ ██╗
# ██║██╔════╝██║ ██║ ╚██╗ ██╔╝██╔════╝██║████╗ ██║
# ██║█████╗ ██║ ██║ ╚████╔╝ █████╗ ██║██╔██╗ ██║
# ██ ██║██╔══╝ ██║ ██║ ╚██╔╝ ██╔══╝ ██║██║╚██╗██║
# ╚█████╔╝███████╗███████╗███████╗██║ ██║ ██║██║ ╚████║
# ╚════╝ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝
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
network_mode: "service:gluetun"
env_file:
- '.env'
restart: unless-stopped
# ██████╗ ██████╗ ██╗████████╗████████╗ ██████╗ ██████╗ ██████╗ ███████╗███╗ ██╗████████╗
# ██╔═══██╗██╔══██╗██║╚══██╔══╝╚══██╔══╝██╔═══██╗██╔══██╗██╔══██╗██╔════╝████╗ ██║╚══██╔══╝
# ██║ ██║██████╔╝██║ ██║ ██║ ██║ ██║██████╔╝██████╔╝█████╗ ██╔██╗ ██║ ██║
# ██║▄▄ ██║██╔══██╗██║ ██║ ██║ ██║ ██║██╔══██╗██╔══██╗██╔══╝ ██║╚██╗██║ ██║
# ╚██████╔╝██████╔╝██║ ██║ ██║ ╚██████╔╝██║ ██║██║ ██║███████╗██║ ╚████║ ██║
# ╚══▀▀═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝
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
environment:
- WEBUI_PORT=8080
- TORRENTING_PORT=6881
network_mode: "service:gluetun"
healthcheck:
start_period: 15s
env_file:
- '.env'
# Define the custom network
networks:
media_network:
driver: bridge