Commit Graph

18 Commits

Author SHA1 Message Date
Will Anderson 7225f56fbc fix(seerr): set public.initialized=true to skip setup wizard on every start 2026-04-11 02:01:54 -05:00
Will Anderson c1d4390393 fix(seerr): persist library config in ConfigMap, restore libraries on pod restart 2026-04-11 01:58:06 -05:00
Will Anderson 280924b1b3 chore(seerr): force pod restart to pick up fix for main.mediaServerType 2026-04-11 01:47:15 -05:00
Will Anderson 4031628f4b fix(seerr): add main.mediaServerType to settings.json to prevent crash
Seerr's checkOverseerrMerge calls Settings.load with raw=true, which
replaces this.data entirely with file contents. If settings.main is
absent (as in our jellyfin-only restore), it crashes at line 418:
'Cannot read properties of undefined (reading apiKey)'.

restore.js now ensures settings.main exists and mediaServerType=JELLYFIN,
which both prevents the crash and causes checkOverseerrMerge to return
early (migration already done).
2026-04-11 01:44:41 -05:00
Will Anderson 71f335c153 seerr: fix init container — use script file instead of inline shell 2026-04-11 01:36:13 -05:00
Will Anderson 32a9f92467 seerr: restore Jellyfin config from ConfigMap on pod start
Init container detects if Jellyfin apiKey is missing and restores
it from the seerr-defaults ConfigMap. Prevents config loss on pod
restarts or when the Jellyfin API key fails validation.
2026-04-11 01:34:02 -05:00
Will Anderson 409274ff54 media: add nightly config backup to Cloudflare R2 via restic
Backs up all service config PVCs (Jellyfin, Radarr, Sonarr, Prowlarr,
qBittorrent, Bazarr, Seerr) at 3am daily to legion-media-backup R2 bucket.
Media files are excluded — they are re-downloadable.
2026-04-11 01:22:24 -05:00
Will Anderson d3289895e5 media: add full library folder structure, store all secrets in Vault
- external-secrets: add qbittorrent, jellyfin, seerr keys from Vault
- pvc: document all media folder paths (movies, tv, anime, docs, standup, concerts, kids, music)
- jellyfin: init container creates all media subdirs on startup
2026-04-11 01:19:48 -05:00
Will Anderson 4ab5cf1e06 fix gluetun: flush stale IPv4 routing rules on pod start 2026-04-11 00:58:10 -05:00
Will Anderson 07fff8804b Remove all Plex references — Jellyfin only 2026-04-11 00:15:28 -05:00
Will Anderson cf5da8dfa1 Add jellyfin.nook.family ingress 2026-04-11 00:13:22 -05:00
Will Anderson a1c1c7b0f6 Switch Plex → Jellyfin, fix gluetun IPv6 VPN issue 2026-04-11 00:11:41 -05:00
Will Anderson e08d7eaa03 Switch Overseerr to Seerr 2026-04-11 00:10:09 -05:00
Will Anderson abbc0e2c08 Add LAN-only Traefik ingresses for media admin services 2026-04-10 23:39:56 -05:00
Will Anderson f1def110de Revert to Overseerr — Seerr permission issue on existing config volume 2026-04-10 23:38:04 -05:00
Will Anderson cdf801b380 Switch to Seerr image, add media stack README 2026-04-10 23:28:51 -05:00
Will Anderson e616f7298a Add FlareSolverr for Cloudflare-protected indexers (1337x, EZTV) 2026-04-10 23:19:38 -05:00
Will Anderson ba99111753 Add media stack: Plex, Radarr, Sonarr, Prowlarr, qBittorrent, Bazarr, Overseerr
- Namespace: media (created via Terraform)
- Storage: hostPath PV at /media on Legion (movies, tv/shows, tv/anime, downloads)
- VPN: gluetun sidecar with ProtonVPN WireGuard (US-TX#253), all torrent traffic tunneled
- Radarr: movie automation with /media/movies root
- Sonarr: TV/anime automation with /media/tv/{shows,anime} roots
- Prowlarr: indexer aggregator (YTS, 1337x, Nyaa for anime)
- qBittorrent: torrent client, network namespaced behind gluetun VPN
- Bazarr: automatic subtitle downloads (connects to Radarr + Sonarr)
- Overseerr: family request portal at watch.nook.family
- Plex: media server at plex.nook.family
2026-04-10 22:50:13 -05:00