grav-publish.sh now renders into KNEL/KNELPerfHub (AGPLv3) and pushes;
the Cloudron VPS ukrrs-hub-pull.timer git-pulls into the Grav pages dir
every 5 min (safe.directory fix); Grav cache.check=file auto-refreshes.
NO server-side tooling runs in the Grav container anymore. Verified
end-to-end live.
https://projects.knownelement.com/issues/826#note-13
Grav (Cloudron app 8336f951, org-SSO-gated) installed at
performance.knownelement.com; tools/grav-publish.sh pushes the home
dashboard (ERCOT risk + arbitrage verdict + baseline index) and report
pages as markdown via ssh->docker exec, then clears cache. Idempotent,
cron-safe. First publish verified live.
https://projects.knownelement.com/issues/826#note-11