Files
zeekay 955b11d027 rewrite: hanzoai/base + Quasar writer-pin + ZAP transport
Complete rewrite of base-ha on top of hanzoai/base (was pocketbase).

- Quasar-derived deterministic writer-pinning (no RAFT, no graft)
  All nodes are equal validators; lowest-sorted alive NodeID = writer
- ZAP transport registered for sub-ms heartbeats
- Hanzo pubsub (NATS-compat) as optional replication broker
- BASE_* env namespace (PB_* removed, no backward compat)
- BASE_CONSENSUS=quasar (default) or pubsub fallback
- BASE_STATIC_WRITER for fixed writer-pin
- Writer/replica terminology throughout (not leader/follower)
- compose.yml replaces docker-compose.yml
- ghcr.io/hanzoai/base-ha image, Go 1.26
2026-04-16 14:39:46 -07:00

44 lines
1.0 KiB
YAML

services:
node1:
image: ghcr.io/hanzoai/base-ha:latest
volumes:
- node1_data:/app/data
ports:
- "8090:8090"
environment:
BASE_NODE_ID: node1
BASE_LOCAL_TARGET: http://node1:8090
BASE_PEERS: http://node2:8090,http://node3:8090
BASE_CONSENSUS: quasar
BASE_SUPERUSER_EMAIL: [email protected]
BASE_SUPERUSER_PASS: 1234567890
node2:
image: ghcr.io/hanzoai/base-ha:latest
volumes:
- node2_data:/app/data
ports:
- "8091:8090"
environment:
BASE_NODE_ID: node2
BASE_LOCAL_TARGET: http://node2:8090
BASE_PEERS: http://node1:8090,http://node3:8090
BASE_CONSENSUS: quasar
node3:
image: ghcr.io/hanzoai/base-ha:latest
volumes:
- node3_data:/app/data
ports:
- "8092:8090"
environment:
BASE_NODE_ID: node3
BASE_LOCAL_TARGET: http://node3:8090
BASE_PEERS: http://node1:8090,http://node2:8090
BASE_CONSENSUS: quasar
volumes:
node1_data:
node2_data:
node3_data: