# Lab / small-prod. NATS stays on the internal network (not published). # Usage: # MONOREPO=/path/to/master-zapier-plan-draft docker compose up --build # or clone sibling repos next to this directory. x-node: &node restart: unless-stopped networks: [verae] services: nats1: image: nats:2.10-alpine command: - "--js" - "--http_port=8222" - "--cluster=nats://0.0.0.0:6222" - "--cluster_name=verae" - "--routes=nats://nats2:6222,nats://nats3:6222" - "--name=nats1" networks: [verae] restart: unless-stopped nats2: image: nats:2.10-alpine command: - "--js" - "--cluster=nats://0.0.0.0:6222" - "--cluster_name=verae" - "--routes=nats://nats1:6222,nats://nats3:6222" - "--name=nats2" networks: [verae] restart: unless-stopped nats3: image: nats:2.10-alpine command: - "--js" - "--cluster=nats://0.0.0.0:6222" - "--cluster_name=verae" - "--routes=nats://nats1:6222,nats://nats2:6222" - "--name=nats3" networks: [verae] restart: unless-stopped zappier-edge: <<: *node build: context: ${MONOREPO:-..}/packages/zappier dockerfile: Dockerfile environment: PORT: "3000" ZAPPIER_UPSTREAM: http://middleware:3100 ports: - "3000:3000" middleware: <<: *node build: context: ${MONOREPO:-..}/packages/verae-zapier-middleware dockerfile: Dockerfile environment: PORT: "3100" MOCK_VERAE: "true" NATS_ENABLED: "true" NATS_URL: nats://nats1:4222 ports: - "3100:3100" depends_on: [nats1, nats2, nats3] archive-worm: <<: *node image: node:22-alpine working_dir: /opt/fleet volumes: - ${MONOREPO:-..}/packages/verae-fleet:/opt/fleet - ${MONOREPO:-..}/packages/verae-archive-worm:/opt/worm - worm-data:/data command: ["node", "src/worker.js"] environment: NATS_URL: nats://nats1:4222 FLEET_ROLE: archive-worm FLEET_SERVICE: archive-worm FLEET_HEALTH_BIND: 0.0.0.0 FLEET_HEALTH_PORT: "13500" FLEET_STATE_DIR: /data deploy: replicas: 3 tree-node: <<: *node image: node:22-alpine working_dir: /opt/fleet volumes: - ${MONOREPO:-..}/packages/verae-fleet:/opt/fleet - ${MONOREPO:-..}/packages/verae-tree-node:/opt/tree - tree-data:/data command: ["node", "src/worker.js"] environment: NATS_URL: nats://nats1:4222 FLEET_ROLE: tree-node FLEET_SERVICE: tree-node FLEET_HEALTH_BIND: 0.0.0.0 FLEET_HEALTH_PORT: "13600" FLEET_STATE_DIR: /data deploy: replicas: 3 networks: verae: driver: bridge internal: false volumes: worm-data: tree-data: