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