verae-ops/02-docker.md

1.8 KiB
Raw Blame History

2. Docker Compose

docker-compose.yml in this repo starts:

  • NATS JetStream 3-node cluster (nats1nats3) on an internal network
  • zappier-edge :3000
  • middleware :3100 with NATS_URL=nats://nats1:4222 and MOCK_VERAE=true by default
  • archive-worm ×3 and tree-node ×3 (fleet floors) as long-running Node workers
  • aggregator + job-poller stand-ins via middleware workers when NATS_ENABLED=true

NATS ports are not published to the host by default (private verae network). HTTPS edges are.

Prereqs

Docker Engine 24+ and Compose v2. Clone this repo plus the application repos as siblings, or set MONOREPO to a checkout of master-zapier-plan-draft.

export MONOREPO=/path/to/master-zapier-plan-draft   # contains packages/
docker compose up --build
curl -fsS http://127.0.0.1:3000/health
curl -fsS http://127.0.0.1:3100/health

Without MONOREPO, Compose expects ../zappier, ../verae-zapier-middleware, … (independent clones next to verae-ops).

  1. Publish zappier-edge on a TLS hostname (Caddy/nginx in front of :3000).
  2. In the Zapier app env: MIDDLEWARE_BASE_URL=https://<zappier-host> (edge meters, then proxies).
  3. Sign up on /portal, copy x-api-key.

Scale

docker compose up --scale archive-worm=3 --scale tree-node=3

Do not publish 4222. To debug NATS from the host:

docker compose exec nats1 wget -qO- http://127.0.0.1:8222/healthz

Operator console

Fleet is not inside Compose by default (it SSH-spawns). On the Docker host:

cd $MONOREPO/packages/verae-fleet
NATS_URL=nats://127.0.0.1:4222   # only if you published 4222 on localhost for lab
node src/cli.js serve            # http://127.0.0.1:3850/  loopback

For Compose-only labs, skip fleet; replica counts come from --scale.