Initial import of verae-ops from zapier monorepo

This commit is contained in:
George Lambert 2026-09-11 16:06:15 -04:00
commit cdfbd27f73
13 changed files with 802 additions and 0 deletions

64
01-dependencies.md Normal file
View file

@ -0,0 +1,64 @@
# 1. Dependencies and data flow
```text
Humans / Zapier cloud
│ HTTPS x-api-key
zappier-edge :3000 (meter, portal, admin, Stripe)
│ HTTPS internal
middleware-http :3100 (/zapier/v1)
├── HTTPS → api.veraetime.net (or MOCK_VERAE)
└── NATS → private cluster
jobs.watch / jobs.events
webhooks.deliver
archive.put / query / reply.*
archive-worm × N tree-node × N
archive-aggregator job-poller
webhook-deliver
```
## Repositories (clone all that you run)
Prefix `ssh://git@git.georgelambert.org:2223/marchon/<name>.git` (SSH **2223**).
| You need | Repo | Catalog README |
|----------|------|----------------|
| Billing HTTPS | `zappier-edge` | https://zapier.georgelambert.org/packages/zappier/README.pdf |
| Zapier adapter | `verae-middleware` | https://zapier.georgelambert.org/packages/verae-zapier-middleware/README.pdf |
| Zapier app (cloud) | `verae-zapier-app` | https://zapier.georgelambert.org/packages/verae-zapier/README.pdf |
| WORM nodes | `verae-archive-worm` | https://zapier.georgelambert.org/packages/verae-archive-worm/README.pdf |
| Merkle leaves | `verae-tree-node` | https://zapier.georgelambert.org/packages/verae-tree-node/README.pdf |
| Archive merge | `verae-archive-aggregator` | https://zapier.georgelambert.org/packages/verae-archive-aggregator/README.pdf |
| Splitter | `verae-request-splitter` | https://zapier.georgelambert.org/packages/verae-request-splitter/README.pdf |
| Replica floors | `verae-fleet` | https://zapier.georgelambert.org/packages/verae-fleet/README.pdf |
| This install guide | `verae-ops` | https://zapier.georgelambert.org/packages/verae-ops/README.pdf |
Optional: `verae-activate` (tiny pushable app), `verae-zapier-simulator` (trace), `overview`, `zapier-docs-master`, `zapier-user-docs`, `verae-nats-process`.
## Runtime dependencies
| Service | Needs |
|---------|--------|
| zappier-edge | Node 20+, SQLite path or volume, `PORT`, optional Stripe keys |
| middleware | Node 22+, `NATS_URL` **or** `NATS_ENABLED=false`, chain URL or `MOCK_VERAE` |
| NATS | JetStream, **no public bind** |
| worm / tree-node | Node, `NATS_URL`, local state dir |
| fleet | Node, `machines.json` (SSH **paths**), loopback `:3850` |
| Zapier cloud app | `MIDDLEWARE_BASE_URL` = **public HTTPS of zappier-edge** (or middleware if you skip metering in lab) |
## Ports (lab defaults)
| Port | Bind | Process |
|------|------|---------|
| 3000 | public or docker publish | zappier-edge |
| 3100 | public or docker publish | middleware |
| 4222 | **private only** | NATS client |
| 6222 | **private only** | NATS cluster |
| 8222 | private / localhost | NATS monitor |
| 3847 | loopback | simulator |
| 3850 | loopback | operator console |
Chain: `https://api.veraetime.net` (prod) or `MOCK_VERAE=true` (lab).