add jellyfin docker stack
add nfs shares for jellyfin have 3 replicas of cyberchef
This commit is contained in:
parent
8201a613a9
commit
cdcb7d93b9
5 changed files with 67 additions and 0 deletions
|
@ -16,3 +16,4 @@
|
|||
- {role: syncthing, tags: syncthing}
|
||||
- {role: kitchenowl, tags: kitchenowl}
|
||||
- {role: paperless-ngx, tags: paperless-ngx}
|
||||
- {role: jellyfin, tags: jellyfin}
|
||||
|
|
|
@ -11,6 +11,7 @@ services:
|
|||
networks:
|
||||
- traefik
|
||||
deploy:
|
||||
replicas: 3
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.cyberchef.entrypoints=websecure
|
||||
|
|
56
docker_swarm/roles/jellyfin/docker-stack.yml.j2
Normal file
56
docker_swarm/roles/jellyfin/docker-stack.yml.j2
Normal file
|
@ -0,0 +1,56 @@
|
|||
# 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"
|
||||
config:
|
||||
driver_opts:
|
||||
type: "nfs"
|
||||
o: "addr=lewis.dmz,nolock,soft,rw"
|
||||
device: ":/mnt/data/nfs/jellyfin/config"
|
||||
cache:
|
||||
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin
|
||||
# user: uid:gid
|
||||
network_mode: 'host'
|
||||
volumes:
|
||||
- cache:/cache
|
||||
- type: volume
|
||||
source: config
|
||||
target: /config
|
||||
volume:
|
||||
nocopy: true
|
||||
- type: volume
|
||||
source: media
|
||||
target: /media
|
||||
volume:
|
||||
nocopy: true
|
||||
# - /path/to/media2:/media2:ro
|
||||
# Optional - 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=localsecure
|
||||
- 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
|
5
docker_swarm/roles/jellyfin/tasks/main.yml
Normal file
5
docker_swarm/roles/jellyfin/tasks/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- name: Deploy Docker stack
|
||||
docker_stack:
|
||||
name: jellyfin
|
||||
compose:
|
||||
- "{{ lookup('template', '{{ role_path }}/docker-stack.yml.j2') | from_yaml }}"
|
|
@ -1,6 +1,7 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
cfg = config.lab.data-sharing;
|
||||
|
||||
nfsShares = [
|
||||
"/nextcloud/data"
|
||||
"/radicale"
|
||||
|
@ -15,7 +16,10 @@ let
|
|||
"/syncthing/config"
|
||||
"/paperless-ngx/data"
|
||||
"/paperless-ngx/redisdata"
|
||||
"/media"
|
||||
"/jellyfin/config"
|
||||
];
|
||||
|
||||
nfsExports = lib.strings.concatLines (
|
||||
builtins.map
|
||||
(share:
|
||||
|
|
Loading…
Reference in a new issue