services: gluetun: image: qmcgaw/gluetun:latest container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun environment: - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER} - VPN_TYPE=${VPN_TYPE} - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} - WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES} - SERVER_CITIES=${SERVER_CITIES} - FIREWALL_INPUT_PORTS=8123 - TZ=${TZ} volumes: - ./config/gluetun:/gluetun networks: - media restart: unless-stopped qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent network_mode: "service:gluetun" depends_on: - gluetun environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - WEBUI_PORT=8123 volumes: - /volume2/docker/linuxserver_qbittorrent-1/config:/config - ${DOWNLOADS_PATH}:/downloads restart: unless-stopped jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /volume2/docker/jellyfin/config:/config - ${MOVIES_PATH}:/movies - ${TV_PATH}:/shows devices: - /dev/dri:/dev/dri ports: - "${LAN_IP}:8096:8096" networks: - media restart: unless-stopped radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /volume2/docker/radarr:/config - ${MOVIES_PATH}:/movies - ${DOWNLOADS_PATH}:/downloads networks: - media restart: unless-stopped sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /volume2/docker/sonarr:/config - ${TV_PATH}:/tv - ${DOWNLOADS_PATH}:/downloads networks: - media restart: unless-stopped prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /volume2/docker/prowlarr:/config networks: - media restart: unless-stopped bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /volume2/docker/bazarr:/config - ${MOVIES_PATH}:/movies - ${TV_PATH}:/tv networks: - media restart: unless-stopped caddy: build: ./caddy container_name: caddy ports: - "${TS_IP}:443:443" environment: - GANDI_BEARER_TOKEN=${GANDI_BEARER_TOKEN} - DOMAIN=${DOMAIN} volumes: - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config extra_hosts: - "host.docker.internal:host-gateway" networks: - media depends_on: - jellyfin - radarr - sonarr - prowlarr - bazarr - gluetun restart: unless-stopped networks: media: driver: bridge volumes: caddy_data: caddy_config: