mirror of
https://github.com/hanzoai/base-ha.git
synced 2026-10-30 18:46:59 +00:00
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
44 lines
1.0 KiB
YAML
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:
|