# 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/.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).