70 lines
1.9 KiB
Markdown
70 lines
1.9 KiB
Markdown
# verae-keep
|
||
|
||
[](https://github.com/RichardLitt/standard-readme)
|
||
|
||
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 user systemd (survives reboot; do not also `nohup guard.sh`):
|
||
|
||
```bash
|
||
bash scripts/install-systemd.sh
|
||
systemctl --user start verae-keep-guard
|
||
```
|
||
|
||
Proxmox guest extra copies: `KEEP_UNITS=units.px-worker.json`.
|
||
|
||
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`
|
||
|
||
## Install
|
||
|
||
```sh
|
||
git clone ssh://git@git.georgelambert.org:2223/marchon/verae-keep.git
|
||
cd verae-keep
|
||
```
|
||
|
||
## Usage
|
||
|
||
```sh
|
||
npm install
|
||
npm start
|
||
```
|
||
|
||
## Contributing
|
||
|
||
Questions: open an issue at https://git.georgelambert.org/marchon/verae-keep/issues. Pull requests are accepted.
|
||
|
||
## License
|
||
|
||
UNLICENSED © George Lambert
|