3 Commits
Author SHA1 Message Date
Archibold 24dd017905 Replace notice pages with widgets: pinned text, Sonarr/Radarr calendars, Plex recently-added
WidgetStore keeps the JSON file (same atomic-write/lock pattern as store.py) and
migrates any old pages.json in place. WidgetData fetches each live widget's own
base_url server-side, normalises Sonarr/Radarr/Plex payloads into one row shape,
caches per <id>@<updated_at> behind UWUDASH_WIDGET_CACHE_TTL, and relays artwork
through /api/widgets/{id}/image so the browser never needs the internal host.

Home now renders one merged calendar timeline, one card per recent widget, then
notices; the Settings table carries a Test button that bypasses the cache.
2026-11-07 17:25:54 +11:00
Archibold 298ef9dbf5 Note pages.json among the files living on the data volume 2026-11-07 16:11:59 +11:00
Archibold f266bc5104 Add container image: two-stage uv build, non-root user, data volume 2026-11-07 15:02:24 +11:00