version: '3.8' services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent network_mode: "service:gluetun" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin - WEBUI_PORT=8080 healthcheck: # Use healthcheck for mullvadvpn test: ["CMD-SHELL", "curl https://am.i.mullvad.net/json | jq '.mullvad_exit_ip' | grep 'true'"] interval: 3m timeout: 10s volumes: - qbittorrent_config:/config - bulk:/bulk restart: unless-stopped gluetun: image: qmcgaw/gluetun:latest container_name: gluetun cap_add: - NET_ADMIN networks: - web environment: - VPN_SERVICE_PROVIDER=mullvad - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=xxxxxxxxxx - WIREGUARD_ADDRESSES=10.xxxxx/32 - SERVER_CITIES=zurich,madrid,warsaw - TZ=Berlin/Europe labels: - traefik.enable=true - traefik.http.services.qbittorrent.loadbalancer.server.port=8080 - traefik.http.routers.qbittorrent-http.rule=Host(`qbt.localhost`) - traefik.http.routers.qbittorrent-http.entrypoints=web # ports: # - 8888:8888/tcp # HTTP proxy # - 8388:8388/tcp # Shadowsocks # - 8388:8388/udp # Shadowsocks radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Berlin/Europe networks: - indexer - web volumes: - radarr_config:/config - bulk:/bulk labels: - traefik.enable=true - traefik.http.services.radarr.loadbalancer.server.port=7878 - traefik.http.routers.radarr-http.rule=Host(`radarr.localhost`) - traefik.http.routers.radarr-http.entrypoints=web sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Berlin/Europe networks: - indexer - web volumes: - sonarr_config:/config - bulk:/bulk labels: - traefik.enable=true - traefik.http.services.sonarr.loadbalancer.server.port=8989 - traefik.http.routers.sonarr-http.rule=Host(`sonarr.localhost`) - traefik.http.routers.sonarr-http.entrypoints=web prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=1000 - PGID=1000 - TZ=Berlin/Europe networks: - indexer - web volumes: - prowlarr_config:/config labels: - traefik.enable=true - traefik.http.services.prowlarr.loadbalancer.server.port=9696 - traefik.http.routers.prowlarr-http.rule=Host(`prowlarr.localhost`) - traefik.http.routers.prowlarr-http.entrypoints=web jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Berlin/Europe networks: - web volumes: - bulk:/data - jellyfin_config:/config labels: - traefik.enable=true - traefik.http.routers.jelly-http.rule=Host(`jelly.localhost`) - traefik.http.routers.jelly-http.entrypoints=web traefik: container_name: traefik image: traefik:latest command: - --accesslog=false - --entrypoints.web=true - --entrypoints.web.address=:80 - --entrypoints.web-secure=true - --entrypoints.web-secure.address=:443 - --providers.docker=true - --providers.docker.exposedbydefault=false - --providers.docker.network=web volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" networks: - web ports: - "0.0.0.0:80:80" - "0.0.0.0:443:443" networks: indexer: name: indexer driver: bridge internal: true web: name: web driver: bridge volumes: qbittorrent_config: name: qbittorrent_config radarr_config: name: radarr_config sonarr_config: name: sonarr_config prowlarr_config: name: prowlarr_config jellyfin_config: name: jellyfin_config bulk: name: bulk