From b7c19592e5f8c95e41581ec6f2808999b4279783 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 31 Oct 2026 19:43:35 -0700 Subject: [PATCH] docs(jellyfin): record the live view bind and the library-coverage law MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page still described the pre-cutover generation ("the live unit is still pre-view", "/mnt/entropy -> /data (live today, read-only)") after the 2026-10-31 cutover deployed the overlay. Corrected, and added the law the census tonight taught: Jellyfin's four libraries cover /data/Movies, TVShows, Music and the collections dir, so anything under /data/media-park is invisible by configuration — a recursive refresh there returns 204 and indexes nothing. Check coverage before re-scanning. --- serverAppConfigs-docs/Dankserver/Jellyfin.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/serverAppConfigs-docs/Dankserver/Jellyfin.md b/serverAppConfigs-docs/Dankserver/Jellyfin.md index 890b32b..395545a 100644 --- a/serverAppConfigs-docs/Dankserver/Jellyfin.md +++ b/serverAppConfigs-docs/Dankserver/Jellyfin.md @@ -18,7 +18,7 @@ clients. public vhost `jelly.franksdank.cloud` behind the [[Anubis]] guard chain → [[Authentik]] outpost (post-auth route proxies `localhost:8096`). -## Facts (the repo quadlet; the live unit is still the pre-view generation — see Data layout) +## Facts (the repo quadlet — deployed as the live unit on 2026-10-31) | Item | Value | |------|-------| @@ -26,7 +26,7 @@ public vhost `jelly.franksdank.cloud` behind the [[Anubis]] guard chain → | Image | `ghcr.io/jellyfin/jellyfin:latest` | | Network | `dankserver_appnet`; publishes 8096/tcp, 8920/tcp, 7359/udp, 1900/udp | | Data roots | `/home/dank/Containers/jellyfin/config:/config`, `/home/dank/Containers/jellyfin/cache:/cache` | -| Media | `Volume=/var/lib/media-meta/view:/data` in git — the [[Media Metadata View]] overlay, **writable**, sidecars land on the NVMe and the [[Entropy Volume]] array underneath stays untouched. **The live unit is still pre-view: `/mnt/entropy:/data:ro`** — nothing is written into the library until the view is deployed | +| Media | `Volume=/var/lib/media-meta/view:/data` — the [[Media Metadata View]] overlay, **writable**, live since the 2026-10-31 cutover: sidecars land on the NVMe and the [[Entropy Volume]] array underneath stays untouched | | GPU | none — no `AddDevice`; CPU decode only (jellyfin-ffmpeg path) | | Env quirks | `DOTNET_SYSTEM_IO_DISABLEFILELOCKING=true`, `LD_PRELOAD=libjemalloc.so.2`, `MALLOC_TRIM_THRESHOLD_=131072` kept verbatim from the compose-era container (zero-drift cutover) | | Health | `curl -f http://localhost:8096/health` every 30 s | @@ -37,12 +37,12 @@ public vhost `jelly.franksdank.cloud` behind the [[Anubis]] guard chain → /home/dank/Containers/jellyfin/config -> /config (JELLYFIN_DATA_DIR) /home/dank/Containers/jellyfin/cache -> /cache (JELLYFIN_CACHE_DIR, XDG_CACHE_HOME) /var/lib/media-meta/view -> /data (git: the overlay view) -/mnt/entropy -> /data (live today: the array, read-only) +/mnt/entropy -> /data (the overlay's lower layer; also the rollback bind) ``` Library folders point at `/data` paths: stable across container recreation and identical to the raw array layout below. Which side of that path the container -is the [[Media Metadata View]] overlay, live since the 2026-10-31 cutover: +sees is the [[Media Metadata View]] overlay, live since the 2026-10-31 cutover: `/var/lib/media-meta/view:/data`, read-write. `Local metadata` — save metadata to media folders — is enabled, and it is the @@ -51,6 +51,15 @@ written once on the NVMe upper layer are files [[Plex]] can read too — and sin the 2026-10-31 cutover that is what happens: Jellyfin is the fleet's only metadata writer, and every sidecar it saves is an SSD byte the array never sees. +**Library coverage is the first thing to check when a title is missing.** The +four libraries are `movies → /data/Movies`, `tvshows → /data/TVShows`, +`music → /data/Music`, `boxsets → /config/data/collections` +(`GET /Library/VirtualFolders`). `/data/media-park` is in **none** of them, so +everything filed under it — the `_unsorted` release bundles and the `extras/` +folders the relayout wrote there — is invisible to Jellyfin by configuration, +not by fault: a recursive refresh answers 204, burns CPU for minutes and +indexes nothing, because it never looks there. Check coverage before re-scanning. + **Failure signature:** `System.IO.IOException: Read-only file system : '/data/Movies//movie.nfo'` means the container is binding the raw array instead of the view — always a fault on this host since the 2026-10-31 cutover.