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

39 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
```bash
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`