Files
doc/nuc
Julien LutranandClaude Opus 5 9468f30f92 jellyfin: scan on download completion — inotify cannot work over NFS
Finished downloads stopped appearing in Jellyfin after the 2026-08-30
storage move, and everything looked healthy: the file was on nas, visible
through NFS inside the container, and /media/downloads is a configured
library. The cause is that Jellyfin watches libraries with inotify, which
only reports changes made through the local mount — transmission now
writes on nas while jellyfin-server reads over NFS on nuc, so no event
ever reaches it. EnableRealtimeMonitor is true and SupportsLibraryMonitor
reports true, which is why it looks fine. Previously both shared one local
dataset on nuc and it worked.

transmission now calls Jellyfin's /Library/Refresh via script-torrent-done.
The hook always exits 0 and never blocks (transmission runs it
synchronously; a hanging hook stalls the daemon), and both the success and
missing-key paths are tested. nuc is usually powered off, so a failed
request is expected and logged rather than treated as an error — the
scheduled scan catches up.

Also records that nuc's mount is read-only, so reorganising downloads into
movies/tv-shows must now happen on nas, and the ordered checklist for
"my download is not in Jellyfin" — the first three checks all passed when
this was hit, which is what made it confusing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 20:21:36 +02:00
..

Homelab: nuc

Incus host on the LAN — on-demand: since 2026-08-30 it only needs to run when watching Jellyfin or using the Spotify Connect kiosk. Everything always-on (blocky/DNS, privoxy, transmission-bt) moved to nas, which is why nuc can now be powered off.

⚠️ Powering nuc off has backup consequences — its 03:30 replication to nas only runs while it is up. See nas-install.md §9.

  • Debian 13, Intel Alder Lake-N (iGPU i915, shared by both Jellyfin containers) — bare-metal reinstall: nuc-install.md

  • Instances are bridged onto the LAN (192.168.0.0/24)

  • Storage: ZFS pool data on the SSD (all instance disks). The USB 4 TB and its pool left nuc on 2026-08-30 — the enclosure's JMicron bridge was suspending the pool (usb4t-dropouts.md); the disk now sits on direct SATA in nas as pool tank.

  • Media library: /srv/media is now an NFSv4 mount from nas (192.168.0.4:/media, read-only). jellyfin-server stays here for the iGPU and reads it with shift=false (jellyfin-server.md).

  • Backups: nuc and nas cross-replicate — nuc pushes all its instances to nas:nucbackup at 03:30, nas pushes its own to nuc:nasbackup at 04:00, so neither host's instances depend on that host surviving (nas/nas-install.md §9). The ks4 pull leg moved to nas as well (ks2/nas-seed.md), so nuc no longer runs a WireGuard tunnel.

  • ⚠️ Never reboot nuc with the display powered on — the i915 probe dies and takes every container with it (including LAN DNS). Symptoms and fix: jellyfin-client.md

Instances

Name IP Doc Features
jellyfin-server 192.168.0.5 unprivileged, autostart; iGPU render node (gpu device, render gid) for QSV/VAAPI transcoding; /srv/media disk device (NFS from nas, shift=false, read-only); proxy device → host :8096
jellyfin-client 192.168.0.6 privileged, autostart; full iGPU (gpu device, gid 44) → HDMI kiosk (cage + Jellyfin Media Player); custom raw.lxc (bind /dev/snd, /dev/input, host /run/udev); Pioneer USB audio as ALSA default; FR keymap; go-librespot Spotify Connect ("Pioneer A-70")
homeassistant (stopped) virtual machine, 50 GiB root disk on pool data

Moved to nas on 2026-08-30: transmission-bt (next to the media dataset it writes to), plus blocky and privoxy so LAN DNS and the proxy survive nuc being shut down.