media-stack/docker-compose.yml
Antonio De Almeida 6e995da949
Added devices mount for tun on vpn service
VPN service will fail to start up in an LXC containers' docker instance complaining about permissions / access to the devices' TUN, either there is no TUN, or it can't modify it.
Adding this line allows the tun of the host Proxmox system to be mounted into the docker container once it's been mounted to the LXC.
Discussion that inspired this change: https://github.com/qdm12/gluetun/discussions/1482
2024-08-24 14:47:09 +02:00

239 lines
7.8 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.38.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.5
# Unomment below if vpn is enabled
# depends_on: # Uncomment this line if vpn is enabled
# - vpn # 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.7.0
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.8
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.20.1
# Uncomment below if vpn is enabled
# depends_on: # Uncomment this line if vpn is enabled
# - vpn # 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.8
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