verae-keep/README.md

39 lines
1.3 KiB
Markdown
Raw Permalink 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`