02f0a39d97
Go-based uptime monitor with SQLite/Postgres storage, TUI dashboard, SSH server, alerting, and clustering support.
72 lines
2.0 KiB
YAML
72 lines
2.0 KiB
YAML
services:
|
|
# -------------------------
|
|
# LEADER NODE
|
|
# -------------------------
|
|
leader:
|
|
build: .
|
|
container_name: upkeep-leader
|
|
ports:
|
|
- "23234:23234" # SSH
|
|
- "8080:8080" # HTTP
|
|
environment:
|
|
- UPKEEP_DB_TYPE=postgres
|
|
# Note: Port 5432 is correct here because we are talking INSIDE the network
|
|
- UPKEEP_DB_DSN=postgres://devuser:devpass@leader-db:5432/upkeep_dev?sslmode=disable
|
|
- UPKEEP_HTTP_PORT=8080
|
|
- UPKEEP_STATUS_ENABLED=true
|
|
- UPKEEP_STATUS_TITLE=Leader Node
|
|
|
|
# Cluster Config
|
|
- UPKEEP_CLUSTER_MODE=leader
|
|
- UPKEEP_CLUSTER_SECRET=mysecret
|
|
depends_on:
|
|
- leader-db
|
|
stdin_open: true
|
|
tty: true
|
|
|
|
leader-db:
|
|
image: postgres:15-alpine
|
|
container_name: upkeep-leader-db
|
|
environment:
|
|
POSTGRES_USER: devuser
|
|
POSTGRES_PASSWORD: devpass
|
|
POSTGRES_DB: upkeep_dev
|
|
volumes:
|
|
- ./tmp/leader-data:/var/lib/postgresql/data
|
|
|
|
# -------------------------
|
|
# FOLLOWER NODE
|
|
# -------------------------
|
|
follower:
|
|
build: .
|
|
container_name: upkeep-follower
|
|
ports:
|
|
- "23233:23234" # SSH (Mapped to different host port)
|
|
- "8081:8080" # HTTP (Mapped to different host port)
|
|
environment:
|
|
- UPKEEP_DB_TYPE=postgres
|
|
# Connects to its OWN database
|
|
- UPKEEP_DB_DSN=postgres://devuser:devpass@follower-db:5432/upkeep_dev?sslmode=disable
|
|
- UPKEEP_HTTP_PORT=8080
|
|
- UPKEEP_STATUS_ENABLED=true
|
|
- UPKEEP_STATUS_TITLE=Follower Node
|
|
|
|
# Cluster Config
|
|
- UPKEEP_CLUSTER_MODE=follower
|
|
- UPKEEP_CLUSTER_SECRET=mysecret
|
|
# IMPORTANT: Uses the Service Name "leader" to connect internally
|
|
- UPKEEP_PEER_URL=http://leader:8080
|
|
depends_on:
|
|
- follower-db
|
|
stdin_open: true
|
|
tty: true
|
|
|
|
follower-db:
|
|
image: postgres:15-alpine
|
|
container_name: upkeep-follower-db
|
|
environment:
|
|
POSTGRES_USER: devuser
|
|
POSTGRES_PASSWORD: devpass
|
|
POSTGRES_DB: upkeep_dev
|
|
volumes:
|
|
- ./tmp/follower-data:/var/lib/postgresql/data |