Files
docker-compose/media-streaming/docker-compose.yml
T

148 lines
6.4 KiB
YAML

services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
environment:
- TZ=Europe/Vienna
- JELLYFIN_PublishedServerUrl=https://${JELLYFIN_FULL_DOMAIN}
- NVIDIA_VISIBLE_DEVICES=GPU-6fbad217-d460-d92d-5829-f3a5f2153526
- NVIDIA_DRIVER_CAPABILITIES=all
runtime: nvidia
group_add:
- "18" # "video" host group id
devices:
- /dev/nvidia0:/dev/nvidia0
- /dev/nvidiactl:/dev/nvidiactl
- /dev/nvidia-modeset:/dev/nvidia-modeset
- /dev/nvidia-uvm:/dev/nvidia-uvm
- /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools
volumes:
- /mnt/user/appdata/jellyfin/config:/config
- /mnt/user/appdata/jellyfin/cache:/cache
- /mnt/user/jellyfin-media/tv-shows:/media
- /mnt/user/jellyfin-media/movies:/media2
- /mnt/user/jellyfin-media/books:/media3
networks:
- traefik_proxy
ports:
- 8096:8096
- 7359:7359/udp # auto-discovery
# - 1900:1900/udp # SSDP/DLNA
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/jellyfin.png"
net.unraid.docker.webui: "https://${JELLYFIN_FULL_DOMAIN}"
folder.view3: "Services"
# local proxy
traefik.enable: true
traefik.http.services.tv.loadbalancer.server.port: 8096
traefik.http.routers.tv.rule: "Host(`${JELLYFIN_FULL_DOMAIN}`)"
traefik.http.routers.tv.entrypoints: websecure
traefik.http.routers.tv.tls: true
traefik.http.routers.tv.tls.certresolver: cloudflare
traefik.http.routers.tv.tls.domains[0].main: "*.homecube.org"
lms:
image: epoupon/lms
container_name: lms
user: "99:100"
ports:
- "8026:5082"
volumes:
- /mnt/user/appdata/lms:/var/lms:rw
- /mnt/user/nextcloud-data/tonitrus/files/music:/music:ro
networks:
- pangolin
- traefik_proxy
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/lyrion-music-server.png"
net.unraid.docker.webui: "https://${LMS_FULL_DOMAIN}"
folder.view3: "Services"
pangolin.public-resources.lightweight-music-server.name: "${LMS_RESOURCE_NAME}"
pangolin.public-resources.lightweight-music-server.full-domain: "${LMS_FULL_DOMAIN}"
pangolin.public-resources.lightweight-music-server.protocol: "http"
pangolin.public-resources.lightweight-music-server.auth.sso-enabled: true
pangolin.public-resources.lightweight-music-server.auth.sso-roles[0]: "Member"
pangolin.public-resources.lightweight-music-server.targets[0].method: "http"
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.enabled: true
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.hostname: "lms"
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.port: 5082
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.path: "/"
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.method: "GET"
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.status: 200
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.interval: 30
pangolin.public-resources.lightweight-music-server.targets[0].healthcheck.timeout: 5
pangolin.public-resources.lightweight-music-server.rules[0].action: "allow"
pangolin.public-resources.lightweight-music-server.rules[0].match: "path"
pangolin.public-resources.lightweight-music-server.rules[0].value: "/rest/*" # OpenSubsonicAPI
# local proxy
traefik.enable: true
traefik.http.services.music.loadbalancer.server.port: 5082
traefik.http.routers.music.rule: "Host(`${LMS_FULL_DOMAIN}`)"
traefik.http.routers.music.entrypoints: websecure
traefik.http.routers.music.tls: true
traefik.http.routers.music.tls.certresolver: cloudflare
traefik.http.routers.music.tls.domains[0].main: "*.homecube.org"
lms2:
image: epoupon/lms
container_name: lms2
user: "99:100"
ports:
- "8028:5082"
volumes:
- /mnt/user/appdata/lms2:/var/lms:rw
- /mnt/user/volume1/music:/music:ro
networks:
- pangolin
- traefik_proxy
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/lyrion-music-server.png"
net.unraid.docker.webui: "https://${LMS_FULL_DOMAIN_2}"
folder.view3: "Services"
pangolin.public-resources.lightweight-music-server-2.name: "${LMS_RESOURCE_NAME_2}"
pangolin.public-resources.lightweight-music-server-2.full-domain: "${LMS_FULL_DOMAIN_2}"
pangolin.public-resources.lightweight-music-server-2.protocol: "http"
pangolin.public-resources.lightweight-music-server-2.auth.sso-enabled: true
pangolin.public-resources.lightweight-music-server-2.auth.sso-roles[0]: "Member"
pangolin.public-resources.lightweight-music-server-2.targets[0].method: "http"
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.enabled: true
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.hostname: "lms2"
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.port: 5082
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.path: "/"
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.method: "GET"
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.status: 200
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.interval: 30
pangolin.public-resources.lightweight-music-server-2.targets[0].healthcheck.timeout: 5
pangolin.public-resources.lightweight-music-server-2.rules[0].action: "allow"
pangolin.public-resources.lightweight-music-server-2.rules[0].match: "path"
pangolin.public-resources.lightweight-music-server-2.rules[0].value: "/rest/*" # OpenSubsonicAPI
# local proxy
traefik.enable: true
traefik.http.services.music2.loadbalancer.server.port: 5082
traefik.http.routers.music2.rule: "Host(`${LMS_FULL_DOMAIN_2}`)"
traefik.http.routers.music2.entrypoints: websecure
traefik.http.routers.music2.tls: true
traefik.http.routers.music2.tls.certresolver: cloudflare
traefik.http.routers.music2.tls.domains[0].main: "*.homecube.org"
networks:
pangolin:
name: pangolin_net
external: true
traefik_proxy:
external: true