# vi: ft=yaml version: '3.5' networks: traefik: external: true volumes: media: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/media" jellyfin_config: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/jellyfin/config" transmission_config: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/transmission/config" jellyseerr_config: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/jellyseerr/config" radarr_config: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/radarr/config" sonarr_config: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/sonarr/config" prowlarr_config: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/nfs/prowlarr/config" jellyfin_cache: services: jellyfin: image: jellyfin/jellyfin:10.8.13-1 network_mode: 'host' volumes: - jellyfin_cache:/cache - type: volume source: jellyfin_config target: /config volume: nocopy: true - type: volume source: media target: /media volume: nocopy: true # Alternative address used for autodiscovery environment: - JELLYFIN_PublishedServerUrl=http://media.kun.is:444 # Optional - may be necessary for docker healthcheck to pass if running in host network mode # extra_hosts: # - "host.docker.internal:host-gateway" networks: - traefik deploy: labels: - traefik.enable=true - traefik.http.routers.jellyfin.entrypoints=websecure - traefik.http.routers.jellyfin.rule=Host(`media.kun.is`) - traefik.http.routers.jellyfin.tls=true - traefik.http.routers.jellyfin.tls.certresolver=letsencrypt - traefik.http.routers.jellyfin.service=jellyfin - traefik.http.services.jellyfin.loadbalancer.server.port=8096 - traefik.docker.network=traefik transmission: image: lscr.io/linuxserver/transmission:latest ports: - "{{ bittorrent_port }}:{{ bittorrent_port }}" - "{{ bittorrent_port }}:{{ bittorrent_port }}/udp" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - type: volume source: transmission_config target: /config volume: nocopy: true - type: volume source: media target: /media volume: nocopy: true networks: - traefik deploy: labels: - traefik.enable=true - traefik.http.routers.transmission.entrypoints=localsecure - traefik.http.routers.transmission.rule=Host(`transmission.kun.is`) - traefik.http.routers.transmission.tls=true - traefik.http.routers.transmission.tls.certresolver=letsencrypt - traefik.http.routers.transmission.service=transmission - traefik.http.services.transmission.loadbalancer.server.port=9091 - traefik.docker.network=traefik jellyseerr: image: fallenbagel/jellyseerr:1.7.0 environment: # TODO: fix log level - LOG_LEVEL=debug - TZ=Europe/Amsterdam volumes: - type: volume source: jellyseerr_config target: /app/config volume: nocopy: true networks: - traefik deploy: labels: - traefik.enable=true - traefik.http.routers.jellyseerr.entrypoints=localsecure - traefik.http.routers.jellyseerr.rule=Host(`jellyseerr.kun.is`) - traefik.http.routers.jellyseerr.tls=true - traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt - traefik.http.routers.jellyseerr.service=jellyseerr - traefik.http.services.jellyseerr.loadbalancer.server.port=5055 - traefik.docker.network=traefik radarr: image: lscr.io/linuxserver/radarr:latest environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - type: volume source: radarr_config target: /config volume: nocopy: true - type: volume source: media target: /media volume: nocopy: true networks: - traefik deploy: labels: - traefik.enable=true - traefik.http.routers.radarr.entrypoints=localsecure - traefik.http.routers.radarr.rule=Host(`radarr.kun.is`) - traefik.http.routers.radarr.tls=true - traefik.http.routers.radarr.tls.certresolver=letsencrypt - traefik.http.routers.radarr.service=radarr - traefik.http.services.radarr.loadbalancer.server.port=7878 - traefik.docker.network=traefik prowlarr: image: lscr.io/linuxserver/prowlarr:latest environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - type: volume source: prowlarr_config target: /config volume: nocopy: true networks: - traefik deploy: labels: - traefik.enable=true - traefik.http.routers.prowlarr.entrypoints=localsecure - traefik.http.routers.prowlarr.rule=Host(`prowlarr.kun.is`) - traefik.http.routers.prowlarr.tls=true - traefik.http.routers.prowlarr.tls.certresolver=letsencrypt - traefik.http.routers.prowlarr.service=prowlarr - traefik.http.services.prowlarr.loadbalancer.server.port=9696 - traefik.docker.network=traefik sonarr: image: lscr.io/linuxserver/sonarr:latest environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - type: volume source: sonarr_config target: /config volume: nocopy: true - type: volume source: media target: /media volume: nocopy: true networks: - traefik deploy: labels: - traefik.enable=true - traefik.http.routers.sonarr.entrypoints=localsecure - traefik.http.routers.sonarr.rule=Host(`sonarr.kun.is`) - traefik.http.routers.sonarr.tls=true - traefik.http.routers.sonarr.tls.certresolver=letsencrypt - traefik.http.routers.sonarr.service=sonarr - traefik.http.services.sonarr.loadbalancer.server.port=8989 - traefik.docker.network=traefik