Commit graph

10 commits

Author SHA1 Message Date
s8n
30a94f41c1 ADMIN-GUIDE: snapshot update post-import (English Futurama replaces Polish) 2026-05-08 02:26:30 +01:00
s8n
1c0cca9ece Add ADMIN-GUIDE.md as canonical entry point
Single page that links to docs/01..08 + bin/. Five operational rules
locked: wrapper-only user creation, stage-before-import, verify-before-
delete, no-public-DNS, repo-as-truth. Daily-ops table, troubleshooting
matrix, emergency rollback procedures, current-state snapshot.

README now points new readers at ADMIN-GUIDE.md first.
2026-05-08 02:20:02 +01:00
s8n
b935d6d42e Add wrapper script: add-jellyfin-user.sh
Jellyfin has no native global default for new-user DisplayPreferences;
home-layout defaults are baked into the web bundle. This wrapper layers
the s8n canonical prefs on top after user creation:

  - Home sections: resume, resumeaudio, nextup, latestmedia, none x6
    (drops the 'My Media' tile row — sidebar already exposes libraries)
  - SubtitleMode=Always, SubtitleLanguagePreference=eng
  - AudioLanguagePreference=pol

Use for every new user from now on; achieves the 'global default' the
admin wanted without patching the web bundle.

Already retroactively applied to s8n + guest.
2026-05-08 02:09:41 +01:00
s8n
1a6a697afd Add pre-import cleanup + filename normalization rulesets
- 07-pre-import-cleanup: 1002-line ruleset for stripping non-media junk before
  files land in /home/user/media/. Catalogs 10 categories (codec promo,
  group brag, promo images, OS thumb caches, samples, sub leftovers, torrent
  residue, proof folders, multi-disc cruft, Win executables). NFO discriminator
  uses 4096-byte head + XML-root regex (covers prologue case the brief 100-byte
  version misses). 15 auto-delete security categories (.exe/.msi/.bat/.scr/...);
  threat model = friend clicking 'Download original' then running on Win.
  Verified extras folders against Jellyfin docs (lowercase 'featurettes',
  'behind the scenes', etc.). Includes idempotent dry-run-default
  cleanup-import.sh that quarantines first, returns staging path on stdout.

- 08-filename-normalization: 1853-line normative renaming ruleset.
  Canonical: 'Show (Year) - SXXEXX - Title.ext' for TV; '<Title> (<Year>).ext'
  for movies; 'Show - NNNN - Title [Sub|Dub].ext' for absolute-numbered anime.
  Strips group tags ([YIFY]/[RARBG]/[FS99 Joy]/[GalaxyRG]), resolution
  (1080p/2160p/4K), codec (x264/x265/HEVC/10bit), source (WEB-DL/BluRay/HDTV),
  audio (DTS-HD.MA/Atmos/5.1/AAC), release-process (PROPER/REPACK/INTERNAL),
  trailing -NOGRP/-RARBG/-EVO, URL refs, basename language tokens.
  Includes stdlib-only normalize.py: dry-run default, --apply commits,
  --force overwrites, audit log to /var/log/jellyfin-imports/<date>.log,
  idempotent. Worked Futurama before/after; flags drift on live tree
  (current 'Futurama/' lacks '(1999)').
2026-05-08 02:07:11 +01:00
s8n
19382879f9 Drop home/ and music/ from canonical layout per owner
Architecture A trimmed to: movies, tv, anime, musicvideos. Removed
mkdir/compose-mount/library-creation curl for home + music. Sections 6
(Music) and the Home-videos category remain in this doc as reference for
re-introduction later.
2026-05-08 01:49:30 +01:00
s8n
e19f20eb75 Add file-structure rules + per-library theming research
- 05-file-structure-rules: 1165-line authoritative ruleset covering 11 media
  categories (movies, tv, anime, stand-up, concerts, docs, home video, extras,
  subs, artwork, NFO). Architecture A flat layout chosen at
  /home/user/media/{movies,tv,anime,musicvideos,music,home}. Top 3 gotchas
  surfaced: no-per-item-folder breaks extras/NFO; year must be in parens;
  anime absolute numbering past 99 needs Shoko or split-by-TVDB-season.

- 06-per-library-themes: 319-line research memo. Verdict: partially feasible.
  No native per-library theming; CustomCss is global, Jellyfin web sets no
  body class for libraryId/collectionType. Recommended approach: JS Injector
  plugin (n00bcodr fork, MIT, last release 2025-12-08) + ~30-line shim that
  mirrors topParentId/collectionType from URL hash to body class, plus three
  scoped CSS blocks (body.lib-movies, body.lib-anime, body.lib-music).
  Reaches 'tinted, branded, recognisable' — not pixel-perfect. Pixel-perfect
  fidelity needs subdomain split (3 instances) at ~100x maintenance.
2026-05-08 01:46:38 +01:00
s8n
f7c872d687 Add operations playbooks: artwork, metadata, subtitles, theming/users
Four research-grade docs covering everything four parallel agents found while
fixing the live Futurama deploy:

- 01-artwork-and-images: root-cause of missing posters (EnableInternetProviders=false
  + wrong fetcher names 'The Movie Database' vs 'TheMovieDb' in 10.10.x). Fixed
  in-place. Doc covers image-type matrix, scraper-to-imagetype map, refresh API.
- 02-metadata-and-titles: Futurama series had empty ProviderIds; locked to
  TMDB 615 (1999 original, not 2023 reboot). All 44 eps now have proper titles +
  Polish overviews. Doc covers filename regex, Identify flow, language cascade.
- 03-subtitles: installed OpenSubtitles plugin v20.0.0.0 (v21+ needs JF 10.11
  ABI). User must add opensubtitles.com creds. Doc covers sidecar naming,
  embedded extraction, per-user prefs.
- 04-theming-and-users: applied ElegantFin v25.12.31 via Branding API. Doc covers
  theme rationale, multi-user policy template, SyncPlay, friend playbook.
2026-05-08 01:13:42 +01:00
s8n
a061949ee1 Restore userns_mode: host (perms regression on userns-remap host) 2026-05-08 00:13:23 +01:00
s8n
115519433d Initial Jellyfin LAN-only stack for tv.s8n.ru 2026-05-07 23:48:20 +01:00
s8n
c290775b62 Initial commit 2026-05-07 23:47:42 +01:00