docs: operator console guide + fix example recipes + document all env vars

- New docs/operations/CONSOLE.md: reaching /admin, NIP-98 login, the
  defaults->env->DB precedence model, per-section runtime-safe vs
  restart-required table, expected_versions concurrency, restart_apply_mode
  (with the systemd Restart=always requirement for auto), clearing a DB
  override. Linked from README + OPERATOR_SETUP.
- All six example recipes gained an explicit chain-enablement block
  (FEATURE_XMR/WOW on, BTC/LTC/GRIN off) so they no longer hard-fail
  Config::validate in production (default-on chains with empty sources).
- Documented all 16 previously-undocumented env vars in .env.example
  (RESTART_APPLY_MODE, TOR_ADMIN_ONION, DEPLOYMENT_MODE, TIP_SHARE_BASE_URL,
  ...); RELAY.md gained the premium-post policy + RELAY_WRITE_ALLOWLIST_NPUBS;
  ADMIN_PUBKEYS noted as reserved/inert.
This commit is contained in:
jwinterm
2026-07-19 15:52:07 -04:00
parent fe2fc91cdd
commit a455c60ed0
11 changed files with 417 additions and 1 deletions
+13
View File
@@ -45,6 +45,19 @@ RELAY_ENABLED=false
ADMIN_ENABLED=false
ADMIN_KEY_INTEGRITY_SECRET=
# ── Chains: enable ONLY what this recipe wires up ────────────────────────────
# FAIL-CLOSED RULE: in production, an ENABLED chain with no source configured makes
# the server REFUSE TO BOOT. Every FEATURE_* chain defaults to true, so this recipe
# turns off the chains it does not wire up. It wires up Monero + Wownero (the
# XMR_/WOW_ blocks below); fill their *_LWS_ADMIN_KEY and it boots. Running your own
# node, you will likely want more chains: to add BTC/LTC set the electrum URL, to
# add GRIN set GRIN_OWNER_API_SECRET (+ wiring), THEN flip that chain's flag to true.
FEATURE_XMR=true
FEATURE_WOW=true
FEATURE_BTC=false
FEATURE_LTC=false
FEATURE_GRIN=false
# Chain endpoints — point at YOUR nodes / light-wallet servers. See the full list
# and formats in ../../.env.example (XMR/WOW LWS + daemon, GRIN_*, BTC/LTC electrum).
XMR_LWS_URL=