# Roadmap — ARRFLIX Last revised: **2026-05-08** --- ## Snapshot | Metric | Value | |---|---| | Prod URL | https://arrflix.s8n.ru → 302 ✓ | | Dev URL | https://dev.arrflix.s8n.ru → 302 ✓ | | Theme | **Cineplex v1.0.6** (rolled back from NeutralFin) | | Repo | `git.s8n.ru/s8n/ARRFLIX` | | Library | 6 series + 2 movies, 175 eps + 9 featurettes | | Disk | nullstone /home — 156G free (60% used) | | Users | 9 (1 admin + 8 non-admin) | | Snapshot tag | `snapshot-2026-05-08-pre-elegantfin` (rollback) | | Docs | 17 in `docs/` + ADMIN-GUIDE + ROADMAP | --- ## 🟥 Open — High value (do first) | # | Item | Effort | Blocker | |---|---|---|---| | H1 | OpenSubtitles credentials (auth fixes log spam too — doc 13 win 2) | S | **owner signs up at opensubtitles.com** | | H2 | GPU transcode (nvidia driver kernel module + container toolkit + SecureBoot signing) | L | **owner sudo + reboot** | | H3 | Apply `bin/force-english-all-users.sh` (German Play button breaks UX for non-English browsers) | S | none — owner runs | | H4 | Backup `/home/docker/jellyfin/config/` off-host (no automated backup yet) | M | strategy decision | ## 🟨 Open — Medium value | # | Item | Effort | Notes | |---|---|---|---| | M1 | Tune detail-page backdrop gradient stops if text contrast off | S | doc 14 §7 | | M2 | EnableThrottling + EnableSegmentDeletion (kills wasted ffmpeg-after-disconnect) | S | doc 13 win 1 | | M3 | KnownProxies + LocalNetworkSubnets in network.xml (fixes session origin on WAN endpoint) | S | doc 13 win 3 | | M4 | PWA manifest bind-mount — kills "Jellyfin" name on Android/iOS install | M | doc 16 phase 1 | | M5 | Logo-screensaver disable + i18n DOM-rewrite shim | M | doc 16 phases 2+3 | | M6 | Extract `bin/cleanup-import.sh` + `normalize.py` from doc bodies into runnable files | S | docs 07/08 | | M7 | Per-library themes (JS injector plugin + body class shim) | M | doc 06 — "tinted, not pixel-perfect" | ## 🟩 Open — Low value (nice-to-have) | # | Item | Effort | Notes | |---|---|---|---| | L1 | Forgejo Actions CI (lint compose, shellcheck bin/, render docs) | M | not started | | L2 | High-res ARRFLIX wordmark for desktop splash variant (currently 235×85, looks soft on 1080p+) | S | doc 14 finding | | L3 | Hide lone "User" h3 header above Sign Out (cosmetic) | S | open Q from settings-fix agent | | L4 | Rotate dev admin password (currently same as prod for parity) | S | open Q from settings-fix agent | --- ## 🚫 Blocked / waiting | Item | Blocker | Action owner | |---|---|---| | OpenSubtitles auth | account signup at .com | **s8n** | | Nvidia GPU | sudo + reboot decision | **s8n** | | WAN public access | home router port-forward 80/443 → 192.168.0.100 | **s8n** | --- ## 🔒 Deferred (with reason) | Item | Reason | |---|---| | Pixel-perfect Netflix/Crunchyroll/Spotify per-lib themes | requires 3 separate Jellyfin instances on subdomains; ~100× maintenance cost. Doc 06 | | Custom Jellyfin Docker image (FROM jellyfin + COPY index.html) | bind-mount works; defer until ≥3 web-bundle overrides needed | | Subdomain split for friend-only access | non-admin user policies + EnabledFolders ACL already do this on a single instance | | Move to Jellyfin-Vue alt web client | replaces UI, breaks current branding stack | | 4 TB HDD activation | wait until library exceeds 500 GB; currently 50G | --- ## ✅ Done ### Branding + theme - ✅ Theme: ElegantFin → Cineplex → ElegantFin → NeutralFin → **Cineplex v1.0.6 (final)**, snapshot tag for rollback - ✅ ARRFLIX logo data-URL injected — overrides Cineplex's logo on `.adminDrawerLogo img` + `.pageTitleWithLogo` (split-rule per element type, no overlap) - ✅ Browser tab title `ARRFLIX` + favicon = ARRFLIX wordmark (via index.html bind-mount) - ✅ Pre-bundle splash → ARRFLIX wordmark (no more Jellyfin logo on first paint) - ✅ LoginDisclaimer "Welcome to ARRFLIX - Private invite only service" - ✅ Critical-path inline `