2026-05-07 23:48:20 +01:00
|
|
|
# Jellyfin — self-hosted media server (LAN-only)
|
|
|
|
|
# Deploy path on nullstone: /opt/docker/jellyfin/
|
Rename: nasflix → ARRFLIX + apply Cineplex theme
Domain + repo rename: nasflix.s8n.ru → arrflix.s8n.ru, NASFLIX → ARRFLIX
(Forgejo repo, Pi-hole DNS, Traefik file+label routes, compose env+labels,
onyx /etc/hosts, branding LoginDisclaimer, all repo refs, logo asset).
Theme: ElegantFin → Cineplex v1.0.6 (MRunkehl, pinned). Picked by research
agent over JellyFlix (halted), DarkFlix (10.8.x only), Theme Park (no
Netflix preset). Real #E50914 + Netflix Sans webfont + transform:scale
hover + gradient login backdrop. Doc 04 updated with full candidate
matrix, theme-history subsection, rollback-to-ElegantFin snippet.
Logo asset saved at assets/logo.png (235x85 RGBA).
Live: https://arrflix.s8n.ru → 302. tv.s8n.ru + nasflix.s8n.ru retired (404).
2026-05-08 02:57:34 +01:00
|
|
|
# Domain: arrflix.s8n.ru (LAN-only via Pi-hole local DNS + no-guest middleware)
|
2026-05-07 23:48:20 +01:00
|
|
|
#
|
|
|
|
|
# Notes:
|
|
|
|
|
# - GTX 1660 Ti present but nvidia-smi failing on host. CPU transcode only
|
|
|
|
|
# until driver is fixed; revisit hwaccel after fix.
|
|
|
|
|
# - Media mounted read-only into container; write only to /config + /cache.
|
|
|
|
|
# - userns: host matches nullstone Docker convention (host UID 1000 owns volumes).
|
|
|
|
|
# - Cert via existing letsencrypt resolver (Gandi DNS-01) — works without
|
|
|
|
|
# public A record.
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
jellyfin:
|
|
|
|
|
image: jellyfin/jellyfin:10.10.3
|
|
|
|
|
container_name: jellyfin
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
user: "1000:1000"
|
2026-05-08 00:13:23 +01:00
|
|
|
userns_mode: "host"
|
2026-05-07 23:48:20 +01:00
|
|
|
environment:
|
|
|
|
|
- TZ=Europe/London
|
Rename: nasflix → ARRFLIX + apply Cineplex theme
Domain + repo rename: nasflix.s8n.ru → arrflix.s8n.ru, NASFLIX → ARRFLIX
(Forgejo repo, Pi-hole DNS, Traefik file+label routes, compose env+labels,
onyx /etc/hosts, branding LoginDisclaimer, all repo refs, logo asset).
Theme: ElegantFin → Cineplex v1.0.6 (MRunkehl, pinned). Picked by research
agent over JellyFlix (halted), DarkFlix (10.8.x only), Theme Park (no
Netflix preset). Real #E50914 + Netflix Sans webfont + transform:scale
hover + gradient login backdrop. Doc 04 updated with full candidate
matrix, theme-history subsection, rollback-to-ElegantFin snippet.
Logo asset saved at assets/logo.png (235x85 RGBA).
Live: https://arrflix.s8n.ru → 302. tv.s8n.ru + nasflix.s8n.ru retired (404).
2026-05-08 02:57:34 +01:00
|
|
|
- JELLYFIN_PublishedServerUrl=https://arrflix.s8n.ru
|
2026-05-07 23:48:20 +01:00
|
|
|
volumes:
|
|
|
|
|
- /home/docker/jellyfin/config:/config
|
|
|
|
|
- /home/docker/jellyfin/cache:/cache
|
|
|
|
|
- /home/user/media:/media:ro
|
2026-05-08 03:09:25 +01:00
|
|
|
- /opt/docker/jellyfin/web-overrides/index.html:/jellyfin/jellyfin-web/index.html:ro
|
2026-05-07 23:48:20 +01:00
|
|
|
networks:
|
|
|
|
|
- proxy
|
|
|
|
|
labels:
|
|
|
|
|
- "traefik.enable=true"
|
|
|
|
|
- "traefik.docker.network=proxy"
|
Rename: nasflix → ARRFLIX + apply Cineplex theme
Domain + repo rename: nasflix.s8n.ru → arrflix.s8n.ru, NASFLIX → ARRFLIX
(Forgejo repo, Pi-hole DNS, Traefik file+label routes, compose env+labels,
onyx /etc/hosts, branding LoginDisclaimer, all repo refs, logo asset).
Theme: ElegantFin → Cineplex v1.0.6 (MRunkehl, pinned). Picked by research
agent over JellyFlix (halted), DarkFlix (10.8.x only), Theme Park (no
Netflix preset). Real #E50914 + Netflix Sans webfont + transform:scale
hover + gradient login backdrop. Doc 04 updated with full candidate
matrix, theme-history subsection, rollback-to-ElegantFin snippet.
Logo asset saved at assets/logo.png (235x85 RGBA).
Live: https://arrflix.s8n.ru → 302. tv.s8n.ru + nasflix.s8n.ru retired (404).
2026-05-08 02:57:34 +01:00
|
|
|
- "traefik.http.routers.jellyfin.rule=Host(`arrflix.s8n.ru`)"
|
2026-05-07 23:48:20 +01:00
|
|
|
- "traefik.http.routers.jellyfin.entrypoints=websecure"
|
|
|
|
|
- "traefik.http.routers.jellyfin.tls=true"
|
|
|
|
|
- "traefik.http.routers.jellyfin.tls.certresolver=letsencrypt"
|
|
|
|
|
- "traefik.http.routers.jellyfin.middlewares=security-headers@file,no-guest@file"
|
|
|
|
|
- "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
proxy:
|
|
|
|
|
external: true
|