version: '3.7' services: jellyfin: image: linuxserver/jellyfin:latest volumes: - /mnt/nfs/jellyfin:/config - /mnt/movies/series:/data/tvshows - /mnt/movies/movies:/data/movies - /mnt/movies/musics:/data/musics environment: - TZ=Europe/Paris networks: - external - internal deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.HWA == true labels: - "traefik.enable=true" - "traefik.http.routers.jellyfin.rule=Host(`jellyfin.bhasher.com`)" - "traefik.http.routers.jellyfin.entrypoints=internalsecure,externalsecure" - "traefik.http.services.jellyfin.loadbalancer.server.port=8096" - "traefik.http.routers.jellyfin.tls=true" - "traefik.http.routers.jellyfin.tls.certresolver=http" depends_on: - system_traefik - system_nfs radarr: image: lscr.io/linuxserver/radarr:latest environment: - TZ=Europe/Paris volumes: - /mnt/nfs/radarr:/config - /mnt/movies/movies:/movies - /mnt/movies/tmp:/downloads deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true labels: - "traefik.enable=true" - "traefik.http.routers.radarr.rule=Host(`radarr.bhasher.com`)" - "traefik.http.services.radarr.loadbalancer.server.port=7878" - "traefik.http.routers.radarr.tls=true" - "traefik.http.routers.radarr.tls.certresolver=http" - "traefik.http.routers.radarr.entrypoints=internalsecure" networks: - internal - external - storage depends_on: - system_traefik - system_nfs - storage_postgres sonarr: image: lscr.io/linuxserver/sonarr:latest environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris volumes: - /mnt/nfs/sonarr:/config - /mnt/movies/series:/tv - /mnt/movies/tmp:/downloads deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true labels: - "traefik.enable=true" - "traefik.http.routers.sonarr.rule=Host(`sonarr.bhasher.com`)" - "traefik.http.services.sonarr.loadbalancer.server.port=8989" - "traefik.http.routers.sonarr.tls=true" - "traefik.http.routers.sonarr.tls.certresolver=http" - "traefik.http.routers.sonarr.entrypoints=internalsecure" networks: - internal - external depends_on: - system_traefik - system_nfs lidarr: image: lscr.io/linuxserver/lidarr:1.1.2-develop # required for postgres environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris volumes: - /mnt/nfs/lidarr:/config - /mnt/movies/musics:/music - /mnt/movies/tmp:/downloads deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true labels: - "traefik.enable=true" - "traefik.http.routers.lidarr.rule=Host(`lidarr.bhasher.com`)" - "traefik.http.services.lidarr.loadbalancer.server.port=8686" - "traefik.http.routers.lidarr.tls=true" - "traefik.http.routers.lidarr.tls.certresolver=http" - "traefik.http.routers.lidarr.entrypoints=internalsecure" networks: - internal - external - storage depends_on: - system_traefik - system_nfs - storage_postgres transmission: image: lscr.io/linuxserver/transmission:latest environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris - USER=transmission - PASS=wo5ciQCMrQTOjx21d3jefyoN volumes: - /mnt/nfs/transmission:/config - /mnt/movies/tmp:/downloads - /mnt/movies/torrents:/watch ports: - 51413:51413/tcp - 51413:51413/udp deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true labels: - "traefik.enable=true" - "traefik.http.routers.transmission.rule=Host(`transmission.bhasher.com`)" - "traefik.http.services.transmission.loadbalancer.server.port=9091" - "traefik.http.routers.transmission.tls=true" - "traefik.http.routers.transmission.tls.certresolver=http" - "traefik.http.routers.transmission.entrypoints=internalsecure" networks: - internal - external depends_on: - system_nfs jackett: image: lscr.io/linuxserver/jackett:latest environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris - AUTO_UPDATE=true volumes: - /mnt/nfs/jackett:/config - /mnt/movies/torrents:/downloads deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true labels: - "traefik.enable=true" - "traefik.http.routers.jackett.rule=Host(`jackett.bhasher.com`)" - "traefik.http.services.jackett.loadbalancer.server.port=9117" - "traefik.http.routers.jackett.tls=true" - "traefik.http.routers.jackett.tls.certresolver=http" - "traefik.http.routers.jackett.entrypoints=internalsecure" networks: - internal - external depends_on: - system_traefik - system_nfs flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest environment: - LOG_LEVEL=info - LOG_HTML=false - CAPTCHA_SOLVER=none - TZ=Europe/Paris networks: - internal deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true bazarr: image: lscr.io/linuxserver/bazarr:1.1.5-development # required for postgres environment: - TZ=Europe/Paris volumes: - /mnt/nfs/bazarr:/config - /mnt/movies/movies:/movies - /mnt/movies/series:/tv deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure max_attempts: 3 placement: constraints: - node.labels.POWER == true labels: - "traefik.enable=true" - "traefik.http.routers.bazarr.rule=Host(`bazarr.bhasher.com`)" - "traefik.http.services.bazarr.loadbalancer.server.port=6767" - "traefik.http.routers.bazarr.tls=true" - "traefik.http.routers.bazarr.tls.certresolver=http" - "traefik.http.routers.bazarr.entrypoints=internalsecure" networks: - external - internal - storage depends_on: - system_traefik - system_nfs - storage_postgres networks: internal: storage: external: true external: external: true