Keep module config and layouts in a per-machine data directory
Connection settings, API keys, enabled flags and named layouts were written to config/ inside the checkout, so a re-clone or reset from main started the server with nothing configured. They now live in a data directory outside the app folder: Windows %APPDATA%\ProdDash macOS ~/Library/Application Support/ProdDash other $XDG_CONFIG_HOME/proddash, else ~/.config/proddash PRODDASH_DATA_DIR overrides the location (a relative path resolves against the app folder, so "config" restores the old spot). The first start after upgrading copies an existing config/modules.json and config/layouts/ into the data directory, so nothing has to be re-entered. If the directory cannot be created or written, the server warns and falls back to config/ rather than refusing to start. A proddash.json in the data directory overrides the checked-in defaults (port, adminPasscode). The startup banner prints the directory in use, /api/admin/state exposes it, and the admin page shows it under the Modules heading. Admin config and layout writes that fail on disk now report the path instead of a generic server error. README, MODULE-GUIDE and CLAUDE.md updated. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RNYUv9EyrGSFmCnmH7WYKH
This commit is contained in:
@@ -3,7 +3,10 @@
|
||||
Modular production dashboard web app for Waters Church, developed in this repo.
|
||||
The app lives at the repo root and is built: zero-dependency Node server
|
||||
(`server.js`, Node 18+), dashboard shell client in `public/`, admin page at
|
||||
`/admin`, modules in `modules/`. [SPEC.md](SPEC.md) was the authority for the
|
||||
`/admin`, modules in `modules/`. Runtime state (module config, named layouts)
|
||||
is written to a per-machine data directory outside the checkout
|
||||
(`PRODDASH_DATA_DIR` overrides; see README "Where settings are kept") — never
|
||||
add code that writes runtime state into the repo folder. [SPEC.md](SPEC.md) was the authority for the
|
||||
initial build; [README.md](README.md) has run/configure/use instructions.
|
||||
|
||||
## Building a new module — read docs/MODULE-GUIDE.md first
|
||||
|
||||
Reference in New Issue
Block a user