Five sibling agents converged on root cause: jellyfin-asset-immutable Traefik router (priority 90) was matching /web/serviceworker.js (Jellyfin PWA's actual SW filename), pinning it with Cache-Control: public, max-age=31536000, immutable. The priority-100 jellyfin-html-nocache router only excluded the literal path /web/sw.js, missing serviceworker.js. Stale SWs from earlier ARRFLIX iterations intercepted /Videos/* and /web/* fetch events, returning cached/empty bytes. Result: MediaSource appendBuffer got bad data -> black <video>. INC6's Clear-Site-Data: "cache" couldn't fix it (per MDN spec, "cache" excludes SW registrations; "storage" would have worked). Fix: added jellyfin-sw-nocache router at priority 250 in /opt/docker/traefik/config/dynamic.yml on nullstone, forcing cache-no-store@file on /web/serviceworker.js + /web/sw.js. Hot-reload via Traefik file provider, no docker restart. Verified at the wire (curl -I /web/serviceworker.js now returns no-cache, no-store, must-revalidate; main.jellyfin.bundle.js still immutable as intended) and via headless Chromium probe of MNS S1E4 (33s of currentTime advance, readyState 4, videoWidth 1920x1080, no errors, both s8n admin and guest user). bin/prod-vs-dev-compare.py also lands as a one-shot diff helper used during the investigation. |
||
|---|---|---|
| assets | ||
| bin | ||
| compose-dev | ||
| docs | ||
| snapshots/2026-05-08-pre-elegantfin | ||
| web-overrides | ||
| .gitignore | ||
| ADMIN-GUIDE.md | ||
| docker-compose.yml | ||
| README.md | ||
| ROADMAP.md | ||
My own premium streaming service. No compromise.
ARRFLIX is my personal streaming service. One library, hand-curated, no filler — every show and film is the best version I could put together. Where the source allows, masters are 4K. Where it doesn't, they're AI-upscaled until they look better than the disc ever did. The reference example: my Rick and Morty Season 1 is a 4K HDR upscale that beats the original broadcast. That's the standard for everything that lands here.
It's not a clone of a public streamer. It's the version I wished existed: the quality bar of a boutique release group, the polish of a flagship app, and a library I actually want to watch.
What you get
- Best-quality everything. 4K where the source supports it, AI-upscaled masters where it doesn't. No 480p filler, no junk encodes.
- Curated, not crawled. Every title is hand-imported, hand-cleaned, and hand-checked before it goes live. Junk files, sample clips, and stray artwork never make it in.
- Polished metadata. Posters, backdrops, episode stills, cast, and descriptions are all locked to the canonical source — no wrong-show matches, no broken artwork, no foreign-language drift.
- English-first UI, every account. No surprise German Play buttons, no browser-locale roulette. Every user is pinned to a consistent experience.
- Custom theming. ARRFLIX wordmark, ARRFLIX-red accent (
#E50914), loading splash, and a Netflix-grade dark UI. Jellyfin's stock chrome is hidden — the brand is the surface. - Per-user home layouts. Resume, Next Up, and Latest Media tuned the way I actually use the app. No "My Media" tile clutter.
- Subtitles done right. Sidecar files named to spec, OpenSubtitles integration, ffmpeg-extracted tracks where embedded.
Live at
Endpoint is LAN / tailnet only. There is no public exposure — if you're not on the network, you're not getting in. By design.
How it works (technical)
ARRFLIX runs on self-hosted infrastructure on nullstone. The repo you're looking at is also the deploy source-of-truth: the compose file, library structure, theming overrides, and operational playbooks all live here. The streaming engine itself is unbranded plumbing — invisible behind the ARRFLIX surface.
Operators / future-me, the technical reference is split across:
ADMIN-GUIDE.md— single-page day-to-day ops: adding users, importing media, fixing scrapes, theme breakage, emergency rollback.ROADMAP.md— what's done, what's open, what's deferred.docs/— research-grade reference docs (artwork, metadata, subtitles, theming, file-structure rules, per-library themes, cleanup, filename normalization, force-English, branding leaks, splash, audits).
Repo lives at https://git.s8n.ru/s8n/ARRFLIX (mirror: https://flexhub.s8n.ru/s8n/ARRFLIX).
ARRFLIX — a one-person streaming service that punches above its weight.