--- services: ############################ # RADARR ############################ # radarr: # image: lscr.io/linuxserver/radarr:latest # container_name: radarr # network_mode: "service:gluetun" # environment: # - PUID=1000 # - PGID=1000 # - TZ=Etc/UTC # volumes: # - /mnt/.ix-apps/app_mounts/radarr/config:/config # - /mnt/pool-main/media/movies:/movies #optional # - /mnt/pool-main/media/downloads:/downloads #optional # restart: unless-stopped ############################ # SONARR ############################ # sonarr: # image: lscr.io/linuxserver/sonarr:latest # container_name: sonarr # network_mode: "service:gluetun" # environment: # - PUID=1000 # - PGID=1000 # - TZ=Etc/UTC # volumes: # - /mnt/.ix-apps/app_mounts/sonarr/config:/config # - /mnt/pool-main/media/series:/tv #optional # - /mnt/pool-main/media/downloads:/downloads #optional # restart: unless-stopped ############################ # PROWLARR ############################ prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr # network_mode: "service:gluetun" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - test-volume:/config restart: unless-stopped ############################ # BAZARR ############################ bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr # network_mode: "service:gluetun" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - /mnt/.ix-apps/app_mounts/bazarr/config:/config - test-volume:/movies #optional - test-volume:/tv #optional restart: unless-stopped ############################ # LIDARR ############################ lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr # network_mode: "service:gluetun" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - test-volume:/config - test-volume:/music #optional - test-volume:/downloads #optional restart: unless-stopped ############################ # READARR ############################ readarr: image: lscr.io/linuxserver/readarr:develop container_name: readarr # network_mode: "service:gluetun" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - test-volume:/config - test-volume:/books #optional - test-volume:/downloads #optional restart: unless-stopped ############################ # QBITTORRENT ############################ transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission # network_mode: "service:gluetun" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - USER=admin - PASS=${TRANSMISSION_PASSWORD} volumes: - test-volume:/config - test-volume:/downloads #optional ports: - 9091:9091 - 51413:51413 - 51413:51413/udp restart: unless-stopped ############################ # DUCKDNS ############################ duckdns: image: linuxserver/duckdns:latest container_name: duckdns # network_mode: "service:gluetun" # Route through gluetun # depends_on: # - gluetun environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - SUBDOMAINS=${DUCKDNS_SUBDOMAINS} # Replace with your DuckDNS subdomain(s) - TOKEN=${DUCKDNS_TOKEN} # Replace with your DuckDNS token restart: unless-stopped ############################ # JELLYFIN ############################ jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin # network_mode: "service:gluetun" labels: - "traefik.enable=true" - "traefik.http.routers.jellyfin.rule=Host(`${JELLYFIN_SUBDOMAIN}.duckdns.org`)" - "traefik.http.routers.jellyfin.entrypoints=websecure" - "traefik.http.routers.jellyfin.tls.certresolver=myresolver" - "traefik.http.services.jellyfin.loadbalancer.server.port=8096" ports: - "8096:8096" environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - test-volume:/config - test-volume:/data/series - test-volume:/data/movies restart: unless-stopped traefik: image: traefik:v2.10 container_name: traefik command: - "--api.insecure=true" # Optional: Enable Traefik dashboard - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.dnschallenge=true" - "--certificatesresolvers.myresolver.acme.dnschallenge.provider=duckdns" - "--certificatesresolvers.myresolver.acme.email=${ACME_EMAIL}" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" ports: - "80:80" # HTTP - "443:443" # HTTPS volumes: - /var/run/docker.sock:/var/run/docker.sock - test-volume:/letsencrypt - test-volume:/config environment: - DUCKDNS_TOKEN=${DUCKDNS_TOKEN} # Your DuckDNS token restart: unless-stopped ############################ # GLUETUN ############################ # gluetun: # image: qmcgaw/gluetun # container_name: gluetun # ports: # - 10000:9091 #transmission # - 11000:8096 #jellyfin # # - 9696:9696 #prowlarr # # - 7878:7878 #radarr # # - 8989:8989 #sonarr # # - 6767:6767 #bazarr # # - 8686:8686 #lidarr # # - 8787:8787 #readarr # - 13000:12000 #qbittorrent # # - 6881:6881 #qbittorrent # # - 6881:6881/udp #qbittorrent # cap_add: # - NET_ADMIN # devices: # - /dev/net/tun:/dev/net/tun # environment: # - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER} # - OPENVPN_USER=${VPN_USER} # - OPENVPN_PASSWORD=${VPN_PASSWORD} # - SERVER_COUNTRIES=Switzerland volumes: test-volume: