Web dashboard step 5: settings page with toml_edit writer

Schema derived from Config::default() and the live config, help text for every
shipped key, env locks and presence-only secrets, typed saves that preserve
comments and validate through Config::load before an atomic rename, provider
add/remove, the change history, and config reload on mtime.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NHyYupFdBiR4VfoUM7NjSM
This commit is contained in:
2026-09-03 17:49:48 +00:00
co-authored by Claude Fable 5.1
parent 849231e49a
commit 572056ce3b
9 changed files with 2856 additions and 3 deletions
+3 -2
View File
@@ -36,9 +36,10 @@ TimeoutStopSec=20s
StateDirectory=daily-epub
StateDirectoryMode=0750
WorkingDirectory=/var/lib/daily-epub
# The publish dirs from [publish] in config.toml — keep these in sync.
# The publish dirs from [publish] in config.toml — keep these in sync — plus
# /etc/daily-epub so the dashboard settings page can rewrite config.toml.
# Every path listed here must exist at start, or the unit fails with 226/NAMESPACE.
ReadWritePaths=/home/thallada/bookorbit/books/daily-epub /var/lib/daily-epub/xtc
ReadWritePaths=/home/thallada/bookorbit/books/daily-epub /var/lib/daily-epub/xtc /etc/daily-epub
# --- hardening (spec §3.15) ---------------------------------------------
ProtectSystem=strict