Files
kendricklab/media/arrstack/docker-compose.yml
2026-01-18 16:13:26 +00:00

143 lines
4.4 KiB
YAML

version: "3.8"
services:
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- FIREWALL_OUTBOUND_SUBNETS=172.29.0.0/16,192.168.0.0/16
- VPN_SERVICE_PROVIDER=protonvpn
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY=${PROTONVPN_WIREGUARD_PRIVATE_KEY}
- SERVER_COUNTRIES=Denmark
# - OPENVPN_USER=${PROTON_OPENVPN_USER}
# - OPENVPN_PASS=${PROTON_OPENVPN_PASS}
volumes:
- ${CONFIG_ROOT}/gluetun:/gluetun
ports:
- 7878:7878 # Radarr
- 8989:8989 # Sonarr
- 9696:9696 # Prowlarr
- 6789:6789 # NZBGet
restart: unless-stopped
networks:
- traefik_public
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
network_mode: service:gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ${CONFIG_ROOT}/radarr:/config
- ${MEDIA_PATH}:/media
restart: unless-stopped
labels:
# Traefik
traefik.enable: "true"
traefik.http.routers.radarr.rule: "Host(`radarr.${DOMAIN}`)"
traefik.http.routers.radarr.entrypoints: "https"
traefik.http.routers.radarr.service: "radarr"
traefik.http.routers.radarr.tls.certresolver: "cloudflare"
traefik.http.routers.radarr.middlewares: "voidauth@docker"
traefik.http.services.radarr.loadbalancer.server.port: "7878"
# Homepage
homepage.group: "Media"
homepage.name: "Radarr"
homepage.icon: "radarr.svg"
homepage.href: "https://radarr.${DOMAIN}"
homepage.description: "Movie Manager"
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
network_mode: service:gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ${CONFIG_ROOT}/sonarr:/config
- ${MEDIA_PATH}:/media
restart: unless-stopped
labels:
# Traefik
traefik.enable: "true"
traefik.http.routers.sonarr.rule: "Host(`sonarr.${DOMAIN}`)"
traefik.http.routers.sonarr.entrypoints: "https"
traefik.http.routers.sonarr.service: "sonarr"
traefik.http.routers.sonarr.tls.certresolver: "cloudflare"
traefik.http.routers.sonarr.middlewares: "voidauth@docker"
traefik.http.services.sonarr.loadbalancer.server.port: "8989"
# Homepage
homepage.group: "Media"
homepage.name: "Sonarr"
homepage.icon: "sonarr.svg"
homepage.href: "https://sonarr.${DOMAIN}"
homepage.description: "TV Series Manager"
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
network_mode: service:gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ${CONFIG_ROOT}/prowlarr:/config
restart: unless-stopped
labels:
# Traefik
traefik.enable: "true"
traefik.http.routers.prowlarr.rule: "Host(`prowlarr.${DOMAIN}`)"
traefik.http.routers.prowlarr.entrypoints: "https"
traefik.http.routers.prowlarr.service: "prowlarr"
traefik.http.routers.prowlarr.middlewares: "voidauth@docker"
traefik.http.routers.prowlarr.tls.certresolver: "cloudflare"
traefik.http.services.prowlarr.loadbalancer.server.port: "9696"
# Homepage
homepage.group: "Media"
homepage.name: "Prowlarr"
homepage.icon: "prowlarr.svg"
homepage.href: "https://prowlarr.${DOMAIN}"
homepage.description: "Indexer Manager"
nzbget:
image: lscr.io/linuxserver/nzbget:latest
container_name: nzbget
network_mode: service:gluetun
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ${CONFIG_ROOT}/nzbget:/config
- ${MEDIA_PATH}:/media # Downloads location
restart: unless-stopped
labels:
# Traefik
traefik.enable: "true"
traefik.http.routers.nzbget.rule: "Host(`nzbget.${DOMAIN}`)"
traefik.http.routers.nzbget.entrypoints: "https"
traefik.http.routers.nzbget.service: "nzbget"
traefik.http.routers.nzbget.tls.certresolver: "cloudflare"
traefik.http.routers.nzbget.middlewares: "voidauth@docker"
traefik.http.services.nzbget.loadbalancer.server.port: "6789"
# Homepage
homepage.group: "Media"
homepage.name: "NZBGet"
homepage.icon: "nzbget.svg"
homepage.href: "https://nzbget.${DOMAIN}"
homepage.description: "Usenet Downloader"
networks:
traefik_public:
external: true