Server web UI: modern themeable layout with dark mode, timezone moved into config

Replaces the ad-hoc inline styling with a shared base template driven by
CSS custom properties (light/dark palettes), a card-based two-column
layout, and a persistent dark-mode toggle. Also moves quiet-hours'
timezone from the container's TZ env var into a proper web UI setting
(zoneinfo-backed), so it no longer needs a docker-compose.yml edit and
restart to change.
This commit is contained in:
2026-07-20 23:48:41 -04:00
parent fa47b88473
commit fdcb444d57
8 changed files with 540 additions and 202 deletions
+4 -4
View File
@@ -2,10 +2,10 @@ FROM python:3.12-slim
WORKDIR /app
# tzdata: python:3.12-slim doesn't include it by default, so a TZ
# environment variable (see docker-compose.yml.example -- used by the
# "Quiet hours" setting) would silently fail to resolve and fall back to
# UTC without this.
# tzdata: python:3.12-slim doesn't include it by default, so the zoneinfo
# database backing the web UI's "Timezone" setting (used by "Quiet hours")
# would have no named zones to resolve without this -- ZoneInfo() would
# raise for anything other than "UTC".
RUN apt-get update && apt-get install -y --no-install-recommends tzdata \
&& rm -rf /var/lib/apt/lists/*