2b987a76

By: Ammar Nanjiani <ammar.nanjiani@gmail.com>

feat(jellyfin): host media archive on theoden, fronted by traefik

Native services.jellyfin (nixarr not needed for LAN-only use; the Aug 2025
nixarr experiment was retired for VPN reasons and its jellyfin extras are
public-exposure plumbing). Replaces the stale media->homeserver_ip DNS
record with jellyfin->traefik LB.

- hosts/servers/theoden/jellyfin.nix: services.jellyfin on :8096,
  jellyfin user in storage group for /mnt/storage/movies read
- k8s/apps/jellyfin/: romm-pattern Service+manual Endpoints to
  192.168.1.27, bifrost-pattern dual IngressRoute + certs
  (jellyfin.lan via lan-ca, jellyfin.dimensiondoor.xyz via letsencrypt)
- adguard.nix: jellyfin.lan rewrite -> 192.168.1.52
- htpc.nix: kodi-gbm withPackages + jellyfin addon (rivendell)
- dns.tf: media record -> jellyfin record

Leftovers cleaned on theoden: /mnt/storage/{jellyfin,arr-data} (44K
husks + dead Mullvad wg key) removed.

Total

12m28s

Time to Start Worker time Duration Time to finish Idle
Config 2s 3s 3s 5s 2s
Eval 6s 5m33s 5m33s 5m40s 1s
Build 5m38s 22m42s 6m51s 12m30s 1s
Suite 2s 28m18s 12m28s 12m30s 5s

Timeline

Config Eval Build
0s1m2m3m4m5m6m7m8m9m10m11m12m