services: jellyfin: image: {{ jellyfin_image }} container_name: jellyfin restart: unless-stopped environment: JELLYFIN_PublishedServerUrl: "https://{{ jellyfin_host }}" volumes: - {{ jellyfin_data_dir }}/config:/config - {{ jellyfin_data_dir }}/cache:/cache - {{ media_path }}:/media labels: traefik.enable: "true" traefik.http.routers.jellyfin.rule: "Host(`{{ jellyfin_host }}`)" traefik.http.routers.jellyfin.entrypoints: websecure traefik.http.routers.jellyfin.tls.certresolver: letsencrypt traefik.http.services.jellyfin.loadbalancer.server.port: "8096" networks: - {{ docker_network_name }} sonarr: image: {{ sonarr_image }} container_name: sonarr restart: unless-stopped environment: PUID: "{{ puid }}" PGID: "{{ pgid }}" TZ: {{ timezone }} volumes: - /data/sonarr/config:/config - {{ media_path }}/tv:/tv - {{ downloads_path }}:/downloads - /data/media/ssd/tv_down:/tv_down labels: traefik.enable: "true" traefik.http.routers.sonarr.rule: "Host(`{{ sonarr_host }}`)" traefik.http.routers.sonarr.entrypoints: websecure traefik.http.routers.sonarr.tls.certresolver: letsencrypt traefik.http.services.sonarr.loadbalancer.server.port: "8989" networks: - {{ docker_network_name }} radarr: image: {{ radarr_image }} container_name: radarr restart: unless-stopped environment: PUID: "{{ puid }}" PGID: "{{ pgid }}" TZ: {{ timezone }} volumes: - /data/radarr/config:/config - {{ media_path }}/movies:/movies - /data/media:/media - /data/media/ssd/movies_down:/movies_down - /data:/data labels: traefik.enable: "true" traefik.http.routers.radarr.rule: "Host(`{{ radarr_host }}`)" traefik.http.routers.radarr.entrypoints: websecure traefik.http.routers.radarr.tls.certresolver: letsencrypt traefik.http.services.radarr.loadbalancer.server.port: "7878" networks: - {{ docker_network_name }} sabnzbd: image: {{ sabnzbd_image }} container_name: sabnzbd restart: unless-stopped environment: PUID: "{{ puid }}" PGID: "{{ pgid }}" TZ: {{ timezone }} ports: - "8082:8080" - "9092:9090" volumes: - {{ sabnzbd_data_dir }}:/config - {{ downloads_path }}:/downloads - /data/media/ssd/movies_down:/movies_down - /data/media/ssd/tv_down:/tv_down labels: traefik.enable: "true" traefik.http.routers.sabnzbd.rule: "Host(`{{ sabnzbd_host }}`)" traefik.http.routers.sabnzbd.entrypoints: websecure traefik.http.routers.sabnzbd.tls.certresolver: letsencrypt traefik.http.services.sabnzbd.loadbalancer.server.port: "8080" networks: - {{ docker_network_name }} nzbhydra2: image: {{ nzbhydra_image }} container_name: nzbhydra2 restart: unless-stopped environment: PUID: "{{ puid }}" PGID: "{{ pgid }}" TZ: {{ timezone }} volumes: - {{ nzbhydra_data_dir }}:/config - {{ downloads_path }}:/downloads networks: - {{ docker_network_name }} jellyseerr: image: {{ jellyseerr_image }} container_name: jellyseerr restart: unless-stopped environment: TZ: {{ timezone }} volumes: - {{ jellyseerr_data_dir }}:/app/config labels: traefik.enable: "true" traefik.http.routers.jellyseerr.rule: "Host(`{{ jellyseerr_host }}`)" traefik.http.routers.jellyseerr.entrypoints: websecure traefik.http.routers.jellyseerr.tls.certresolver: letsencrypt traefik.http.services.jellyseerr.loadbalancer.server.port: "5055" networks: - {{ docker_network_name }} networks: {{ docker_network_name }}: external: true