Initial import of verae-fleet from zapier monorepo

This commit is contained in:
George Lambert 2026-09-11 14:07:10 -04:00
commit 4ddb3882dc
40 changed files with 2639 additions and 0 deletions

42
README.md Normal file
View file

@ -0,0 +1,42 @@
# verae-fleet
Operator control plane for Verae Time × Zapier **runtime** services:
- a **list** of every service and its config file
- a **central replica spec** (`fleet.json`) — how many copies must be up
- a **monitor** of active / paused / unhealthy replicas
- **restart** when a copy is offline or fails `/health`
- **on / off / pause / resume** per service or per instance
- **keepFloor** on tree nodes so at least `min` copies stay available (paused copies do not count)
```bash
cd packages/verae-fleet
npm test
node src/cli.js list
node src/cli.js serve # http://127.0.0.1:3850/
```
Against a running daemon:
```bash
node src/cli.js status
node src/cli.js pause tree-node-0 # floor starts another tree-node
node src/cli.js resume tree-node-0
node src/cli.js restart tree-node-1
node src/cli.js stop webhook-deliver # disable that service
node src/cli.js start webhook-deliver
```
Add capacity in `machines.json` or the monitor **Add machine** form (`kind=ssh`, user, host, identity file path). New replicas land on the least-loaded eligible host.
```bash
node src/cli.js ssh-check ns1 # marchon@70.88.205.138 with ~/.ssh/id_ed25519
```
Private keys stay on disk (`~/.ssh/id_ed25519`); git stores only the path. Optional overrides: `machines.secrets.json` (gitignored).
Operator console (Fleet · Trace · Docs) at http://127.0.0.1:3850/ — see [docs/CONSOLE.md](docs/CONSOLE.md). Message-processing **min / avg / p50 / p90** RTT is on the Fleet tab.
Zapier cloud apps are listed but **not spawned**. NATS on NS1 is **monitored only** (loopback `:4222`, never a public bind).
Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-fleet.git`