257 lines
7.4 KiB
Django/Jinja
257 lines
7.4 KiB
Django/Jinja
# 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"
|
|
bazarr_config:
|
|
driver_opts:
|
|
type: "nfs"
|
|
o: "addr=lewis.dmz,nolock,soft,rw"
|
|
device: ":/mnt/data/nfs/bazarr/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
|
|
|
|
bazarr:
|
|
image: lscr.io/linuxserver/bazarr:latest
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/Amsterdam
|
|
volumes:
|
|
- type: volume
|
|
source: bazarr_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.bazarr.entrypoints=localsecure
|
|
- traefik.http.routers.bazarr.rule=Host(`bazarr.kun.is`)
|
|
- traefik.http.routers.bazarr.tls=true
|
|
- traefik.http.routers.bazarr.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.bazarr.service=bazarr
|
|
- traefik.http.services.bazarr.loadbalancer.server.port=6767
|
|
- traefik.docker.network=traefik
|