ARRFLIX/compose-dev/docker-compose.yml

46 lines
1.8 KiB
YAML
Raw Normal View History

# Jellyfin DEV — second instance for theme/branding experimentation
# Deploy path on nullstone: /opt/docker/jellyfin-dev/
# Domain: dev.arrflix.s8n.ru (LAN-only via Pi-hole local DNS + no-guest middleware)
#
# Purpose:
# - Isolated playground for trying themes (Cineplex, ElegantFin, NeutralFin, ...)
# without touching the live arrflix.s8n.ru that real users (marco, house, guest, 5)
# are watching.
# - Same media library mounted READ-ONLY so dev sees the same titles but cannot
# mutate the on-disk library.
# - Separate config/cache so first-run wizard, accounts and branding live here only.
# - LAN-only: no-guest middleware on router; do NOT publish to WAN.
#
# Image pinned to 10.10.3 to match prod for theme parity. Bump prod first, then
# match here, never the other way around.
services:
jellyfin-dev:
image: jellyfin/jellyfin:10.10.3
container_name: jellyfin-dev
restart: unless-stopped
user: "1000:1000"
userns_mode: "host"
environment:
- TZ=Europe/London
- JELLYFIN_PublishedServerUrl=https://dev.arrflix.s8n.ru
volumes:
- /home/docker/jellyfin-dev/config:/config
- /home/docker/jellyfin-dev/cache:/cache
- /home/user/media:/media:ro
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.jellyfin-dev.rule=Host(`dev.arrflix.s8n.ru`)"
- "traefik.http.routers.jellyfin-dev.entrypoints=websecure"
- "traefik.http.routers.jellyfin-dev.tls=true"
- "traefik.http.routers.jellyfin-dev.tls.certresolver=letsencrypt"
- "traefik.http.routers.jellyfin-dev.middlewares=security-headers@file,no-guest@file"
- "traefik.http.services.jellyfin-dev.loadbalancer.server.port=8096"
networks:
proxy:
external: true