Zapier is one ingress. Direct web, customer API, and S2S leaf nodes are their own services. Every hop to an internal subject must pass verae.access.authz.check (default deny by plane).
4.3 KiB
Bring Verae Time × Zapier online
This is the top document for install, first-up, and monitoring. Platform-specific detail lives in the numbered ops chapters; do not start there.
Catalog: https://zapier.georgelambert.org/packages/verae-ops/GETTING-STARTED.pdf
Billing / users (zappier-edge): https://zapier.georgelambert.org/packages/zappier/docs/USER-MANUAL.pdf
Operator console: http://127.0.0.1:3850/ (loopback) · https://zapier.georgelambert.org/packages/verae-fleet/docs/CONSOLE.pdf
What you are turning on
| Piece | Job | Default |
|---|---|---|
| access-authz | NATS authorization step for every access plane | :3020 |
| access-web / api / leaf / zapier | Separated ingress (browser, x-api-key, S2S, Zapier) | :3021–:3024 |
| zappier-edge | Billing, API keys, customer portal, admin, Stripe; meters then proxies to middleware | :3000 public HTTPS |
| account-balance | NATS prepaid balances (SoT) | :3010 |
| customer-service | CS credit additions + review | :3011 |
| sales-pricing | Per-customer sales quotes | :3012 |
| accounting-export | QuickBooks IIF / CSV | :3013 |
| verae-middleware | Zapier /zapier/v1, chain, NATS |
:3100 |
| NATS JetStream | Private jobs / archive | :4222 not public |
| worm ×3, tree-node ×3 | Off-chain files and Merkle leaves | fleet floor |
| fleet | Replica floors, SSH hosts, Trace, Docs | :3850 loopback |
Zapier cloud talks only to zappier-edge over HTTPS.
The billing and user platform is the standalone zappier project (/Users/marchon/zappier, Forgejo zappier-edge): portal signup, TOTP, API keys, rate card, Stripe meter, PO invoices, admin users. Verae middleware does not replace it.
15-minute lab (one machine)
git clone ssh://git@git.georgelambert.org:2223/marchon/master-zapier-plan-draft.git
cd master-zapier-plan-draft
export MONOREPO="$PWD"
cd packages/verae-ops
docker compose up --build
Check:
curl -fsS http://127.0.0.1:3000/health # zappier-edge (billing + users)
curl -fsS http://127.0.0.1:3010/health # account-balance (NATS SoT)
curl -fsS http://127.0.0.1:3011/health # customer-service
curl -fsS http://127.0.0.1:3012/health # sales-pricing
curl -fsS http://127.0.0.1:3100/health # middleware
Open:
- Customer portal: http://127.0.0.1:3000/portal — sign up, copy
x-api-key, Statement tab - Admin: http://127.0.0.1:3000/admin — Statement per customer
- CS review: http://127.0.0.1:3011/
- Sales review: http://127.0.0.1:3012/
- Accounting review/export: http://127.0.0.1:3013/
- API docs: http://127.0.0.1:3000/docs
Do not publish NATS 4222.
Operator console (monitor)
On the same machine (or SSH tunnel ssh -L 3850:127.0.0.1:3850 user@host):
cd "$MONOREPO/packages/verae-fleet"
node src/cli.js serve
http://127.0.0.1:3850/ — Fleet (green/yellow/red), Trace, Docs. Tree-node min 3; pause does not count.
node src/cli.js status
node src/cli.js ssh-check ns1
Point Zapier at the lab
- TLS in front of
:3000(Caddy). - Zapier app env:
MIDDLEWARE_BASE_URL=https://<zappier-host>(edge meters, then proxies to middleware). - Connect with the portal API key.
Production (pick one)
| Where | Read |
|---|---|
| Docker | 02-docker.pdf |
| Proxmox | 03-proxmox.pdf |
| Cloud VMs | 04-virtual-servers.pdf |
| Dedicated / NS1 | 05-dedicated-hardware.pdf |
| Env vars & NATS | 06-linking-services.pdf |
| Backup / upgrade | 07-maintenance.pdf |
Daily monitor
| Check | Expect |
|---|---|
curl -fsS https://zappier.example.com/health |
200 |
curl -fsS https://middleware.example.com/health |
200 |
NATS http://127.0.0.1:8222/healthz on each node |
ok (localhost only) |
| Fleet tree-node available ≥ 3 | green |
| Portal login + key still works | 200 /v1/status with x-api-key |
If something is red
- Fleet row color: yellow = paused/degraded, red = below floor —
restartthat replica. - 401/402 from Zapier → zappier-edge keys and rate card, not NATS.
- Archive lookup empty → bloom miss is silence; check worm/tree floors, not “error replies”.