media-stack/docker-compose.yml
Navratan Lal Gupta 9ae93b1740
qbt && prowlarr waits for vpn to be healthy
Signed-off-by: Navratan Lal Gupta <navilg0409@gmail.com>
2024-09-23 00:33:24 +05:30

241 lines
7.9 KiB
YAML

version: "3.9"
name: media-stack
services:
# To use/enable VPN, Run this compose file with --profile=vpn. Its highly recommended to use VPN.
vpn:
## Read https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers for details on configuring VPN for your service provider.
profiles: ["vpn"]
container_name: vpn
image: qmcgaw/gluetun:v3.39.0
cap_add:
- NET_ADMIN
environment:
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:-nordvpn} # Valid values: nordvpn, expressvpn, protonvpn, surfshark or custom
- OPENVPN_USER=${OPENVPN_USER:-""}
- OPENVPN_PASSWORD=${OPENVPN_PASSWORD:-""}
## For list of server countries, visit https://raw.githubusercontent.com/qdm12/gluetun/master/internal/storage/servers.json
## When VPN_SERVICE_PROVIDER is custom. Comment the below line
- SERVER_COUNTRIES=${SERVER_COUNTRIES:-Switzerland}
# - FREE_ONLY=on # Valid with protonvpn only. Value willbe set "on" if using free subscription provided by protonvpn
## Enable below if VPN_SERVICE_PROVIDER=custom
# - VPN_TYPE=openvpn # or wireguard.
## If VPN_TYPE is openvpn
# - OPENVPN_CUSTOM_CONFIG=/gluetun/custom.conf
## If VPN_TYPE is wireguard. Replace below env variables as required.
# - VPN_ENDPOINT_IP=1.2.3.4 # Replace with your wg endpoint ip or domain
# - VPN_ENDPOINT_PORT=51820 # Replace with wg server port
# - WIREGUARD_PUBLIC_KEY=wAUaJMhAq3NFutLHIdF8AN0B5WG8RndfQKLPTEDHal0= # Replace with your wg public key
# - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU= # Replace with your wg client private key
# - WIREGUARD_PRESHARED_KEY=xOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU= # Replaced with your wg pre-shared key
# - WIREGUARD_ADDRESSES="10.64.222.21/32" # Replace with wg address
## Enable volume if VPN_SERVICE_PROVIDER=custom and VPN_TYPE=openvpn is used
# volumes:
# - /yourpath/yourconfig.conf:/gluetun/config.conf:ro
networks:
- mynetwork
# # Uncomment below when using VPN in an LXC container
# # Make sure to mount /dev/net/tun and /dev/net from underlaying host into your LXC.
# devices:
# - /dev/net/tun:/dev/net/tun
# Uncomment/enable below ports if VPN is used/enabled
# ports:
# # qbittorrent ports
# - 5080:5080
# - 6881:6881
# - 6881:6881/udp
# # prowlarr ports
# - 9696:9696
restart: "unless-stopped"
## Default credentials of qBittorrent - Username: admin password: adminadmin ##
## Change password after install from UI --> Tools --> Options --> WebUI ##
qbittorrent:
profiles: ["vpn", "no-vpn"]
container_name: qbittorrent
image: lscr.io/linuxserver/qbittorrent:4.6.7
# Unomment below if vpn is enabled
# depends_on: # Uncomment this line if vpn is enabled
# vpn: # Uncomment this line if vpn is enabled
# condition: service_healthy # Uncomment this line if vpn is enabled
# Comment below lines if VPN is enabled
networks: # Comment this line if vpn is enabled
- mynetwork # Comment this line if vpn is enabled
# Unomment below line if vpn is enabled
# network_mode: service:vpn
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
- WEBUI_PORT=5080
volumes:
- qbittorrent-config:/config
- torrent-downloads:/downloads
## Comment/Disable below ports if VPN is enabled
ports:
- 5080:5080
- 6881:6881
- 6881:6881/udp
restart: "unless-stopped"
radarr:
profiles: ["vpn", "no-vpn"]
container_name: radarr
image: lscr.io/linuxserver/radarr:5.10.4
networks:
- mynetwork # Comment this line if VPN is enabled
## Uncomment below lines if VPN is enabled
# mynetwork:
# ipv4_address: ${RADARR_STATIC_CONTAINER_IP} # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
ports:
- 7878:7878
volumes:
- radarr-config:/config
- torrent-downloads:/downloads
restart: "unless-stopped"
sonarr:
profiles: ["vpn", "no-vpn"]
image: linuxserver/sonarr:4.0.9
container_name: sonarr
networks:
- mynetwork # Comment this line if VPN is enabled
## Uncomment below lines if VPN is enabled
# mynetwork:
# ipv4_address: ${SONARR_STATIC_CONTAINER_IP} # It should be available IPv4 address in range of docker network `mynetwork` e.g. 172.20.0.2
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- sonarr-config:/config
- torrent-downloads:/downloads
ports:
- 8989:8989
restart: unless-stopped
prowlarr:
profiles: ["vpn", "no-vpn"]
container_name: prowlarr
image: linuxserver/prowlarr:1.23.1
# Uncomment below if vpn is enabled
# depends_on: # Uncomment this line if vpn is enabled
# vpn: # Uncomment this line if vpn is enabled
# condition: service_healthy # Uncomment this line if vpn is enabled
# network_mode: service:vpn # Uncomment this line if vpn is enabled
networks: # Comment this line if vpn is enabled
- mynetwork # Comment this line if vpn is enabled
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- prowlarr-config:/config
# Comment below ports if VPN is enabled.
ports:
- 9696:9696
restart: unless-stopped
jellyseerr:
profiles: ["vpn", "no-vpn"]
image: fallenbagel/jellyseerr:1.9.2
container_name: jellyseerr
networks:
- mynetwork
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- jellyseerr-config:/app/config
ports:
- 5055:5055
restart: unless-stopped
jellyfin:
profiles: ["vpn", "no-vpn"]
image: linuxserver/jellyfin:10.9.11
container_name: jellyfin
networks:
- mynetwork
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- jellyfin-config:/config
- torrent-downloads:/data
# devices:
# - /dev/videoN:/dev/videoN # Mount GPU device
ports:
- 8096:8096
- 7359:7359/udp
- 8920:8920
restart: unless-stopped
# Doc: https://github.com/navilg/cleanmyarr
# cleanmyarr:
# profiles: ["vpn", "no-vpn"]
# depends_on:
# - radarr
# - sonarr
# image: linuxshots/cleanmyarr:0.8.1
# container_name: cleanmyarr
# networks:
# - mynetwork
# volumes:
# - cleanmyarr-config:/config
# restart: unless-stopped
# environment:
# - CMA_MAINTENANCE_CYCLE=${CMA_MAINTENANCE_CYCLE:-""}
# - CMA_DELETE_AFTER_DAYS=${CMA_DELETE_AFTER_DAYS:-""}
# - CMA_ENABLE_EMAIL_NOTIFICATION=${CMA_ENABLE_EMAIL_NOTIFICATION:-""}
# - CMA_SMTP_USERNAME=${CMA_SMTP_USERNAME:-""}
# - CMA_SMTP_ENCODED_PASSWORD=${CMA_SMTP_ENCODED_PASSWORD:-""}
# - CMA_SMTP_TO_EMAILS=${CMA_SMTP_TO_EMAILS:-""}
# - CMA_ENABLE_GOTIFY_NOTIFICATION=${CMA_ENABLE_GOTIFY_NOTIFICATION:-""}
# - CMA_GOTIFY_URL=${CMA_GOTIFY_URL:-""}
# - CMA_GOTIFY_ENCODED_APP_TOKEN=${CMA_GOTIFY_ENCODED_APP_TOKEN:-""}
# - CMA_ENABLE_TELEGRAM_NOTIFICATION=${CMA_ENABLE_TELEGRAM_NOTIFICATION:-""}
# - CMA_TELEGRAM_ENCODED_BOT_TOKEN=${CMA_TELEGRAM_ENCODED_BOT_TOKEN:-""}
# - CMA_TELEGRAM_CHAT_ID=${CMA_TELEGRAM_CHAT_ID:-""}
# - CMA_MONITOR_RADARR=${CMA_MONITOR_RADARR:-""}
# - CMA_RADARR_URL=${CMA_RADARR_URL:-""}
# - CMA_RADARR_ENCODED_API_KEY=${CMA_RADARR_ENCODED_API_KEY:-""}
# - CMA_RADARR_ENABLE_NOTIFICATION=${CMA_RADARR_ENABLE_NOTIFICATION:-""}
volumes:
torrent-downloads:
radarr-config:
sonarr-config:
prowlarr-config:
jellyfin-config:
qbittorrent-config:
jellyseerr-config:
# cleanmyarr-config:
networks:
mynetwork:
external: true