master-zapier-plan-draft/packages/verae-keep/README.md
George Lambert baaf1c2275
Some checks are pending
offline / test (push) Waiting to run
Add verae-keep: host supervisor with watch+guard on NS1.
Restarts crashed units unless the admin console paused or stopped
them. Fleet writes per-instance intent.json. Tested on 138:
crash-restart, pause-hold, watch respawn of keep.
2026-09-11 19:25:11 -04:00

1.3 KiB
Raw Blame History

verae-keep

Host keep-alive for Verae workers. Restarts a unit that crashed unless the operator console paused or stopped it.

Forgejo: https://git.georgelambert.org/marchon/verae-keep

Two processes:

Process Port Job
node src/keep.js :3860 Probe units, spawn if intent is run
node src/watch.js :3861 Restart keep if /health fails
scripts/guard.sh Restart watch if watch exits

Intent is run | pause | stop. Sources, newest wins:

  1. POST /intent/:id (admin / API)
  2. ~/verae-fleet-runtime/data/<instance>/intent.json (fleet writes this on start/pause/stop)
  3. live FLEET_URL/api/status when set
  4. unit defaultIntent (run)

Pause: leave the process down or POST /pause. Stop: SIGTERM and do not spawn. Run: spawn if health fails.

NS1 (70.88.205.138)

KEEP_UNITS=$HOME/verae-keep/units.ns1.json KEEP_STATE=$HOME/verae-keep/data \
  nohup bash scripts/guard.sh >/tmp/verae-keep-guard.out 2>&1 &

Or systemd user unit systemd/verae-keep-guard.service (loginctl enable-linger).

Units: NATS (observe only), job-poller, webhook-deliver, archive-aggregator, archive-worm ×3, tree-node ×3.

API

  • GET /health GET /status
  • POST /intent/:id {"state":"pause|stop|run"}
  • POST /reconcile