9468f30f92323fcb86c27bef37e2468c20e72914
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>
Personal infrastructure notes
Two repositories back this setup:
doc (this one) and
scripts (the cron drivers
and their config files, deployed to /root/scripts on each host).
Start here:
- backup-strategy.md — what is backed up, by which tool, on what schedule, and how to restore.
- new-container.md — conventions for adding a service to ks4 (and getting it backed up automatically).
Tech notes
nuc/— home lab onnuc: host, iGPU instancesnas/— storage + backup hostnas(Supermicro A1SAi-2750F): the 4 TB on direct SATA, media over NFS, backup poolsks4/— prod serverks4at OVH: host, services, network flowsks2/— legacy backup server being decommissionedarcher-c7/— home router (TP-Link Archer C7 v5 running on OpenWrt)
Conventions
- One markdown file per topic in the correct subdir, containing the full implementation notes, configuration, and troubleshooting notes.
- Containers are built from Debian/Ubuntu images and configured
exclusively through
incus exec/incus configso the doc is the single source of truth — rebuilding = re-running the script. - Adding a service to ks4: follow
new-container.md (no Docker in containers —
incus runs OCI images natively and
incus-composehandles stacks; data paths go intoscripts/restic-paths).
Languages
Markdown
100%