b32145fb58
Documentation: - Fix CI badge href to /actions (was 404 on Gitea) - Add UPTOP_METRICS_PUBLIC + UPTOP_MAINT_RETENTION to README env table - Link maintenance retention to env var name in data retention section - Note metrics auth requirement in features list - Fix clustering.md: fail-closed wording, mark AGG_STRATEGY/NODE_REGION optional - Fix .env.example: wording (no .env loader), add TRUSTED_PROXIES + MAINT_RETENTION - Add CLI help/usage with subcommand listing, accept serve/help/-h/-version Docker/deploy: - Add EXPOSE 8080 to Dockerfile - Remove dead LIPGLOSS_RENDERER_HAS_DARK_BACKGROUND env - Exempt /api/health from cluster auth (fixes Docker HEALTHCHECK 401) - Add sysctls for unprivileged ping to all compose files Cosmetic: - Fix bug_report.yaml: SemVer placeholder, remove nonexistent serve subcommand
76 lines
2.2 KiB
YAML
76 lines
2.2 KiB
YAML
services:
|
|
# -------------------------
|
|
# LEADER NODE
|
|
# -------------------------
|
|
leader:
|
|
image: lerkolabs/uptop:latest
|
|
container_name: uptop-leader
|
|
sysctls:
|
|
- net.ipv4.ping_group_range=0 2147483647
|
|
ports:
|
|
- "23234:23234" # SSH
|
|
- "8080:8080" # HTTP
|
|
environment:
|
|
- UPTOP_DB_TYPE=postgres
|
|
# Note: Port 5432 is correct here because we are talking INSIDE the network
|
|
- UPTOP_DB_DSN=postgres://devuser:devpass@leader-db:5432/uptop_dev?sslmode=disable
|
|
- UPTOP_HTTP_PORT=8080
|
|
- UPTOP_STATUS_ENABLED=true
|
|
- UPTOP_STATUS_TITLE=Leader Node
|
|
|
|
# Cluster Config
|
|
- UPTOP_CLUSTER_MODE=leader
|
|
- UPTOP_CLUSTER_SECRET=mysecret # EXAMPLE ONLY — rotate before use
|
|
depends_on:
|
|
- leader-db
|
|
stdin_open: true
|
|
tty: true
|
|
|
|
leader-db:
|
|
image: postgres:15-alpine
|
|
container_name: uptop-leader-db
|
|
environment:
|
|
POSTGRES_USER: devuser
|
|
POSTGRES_PASSWORD: devpass
|
|
POSTGRES_DB: uptop_dev
|
|
volumes:
|
|
- ./tmp/leader-data:/var/lib/postgresql/data
|
|
|
|
# -------------------------
|
|
# FOLLOWER NODE
|
|
# -------------------------
|
|
follower:
|
|
image: lerkolabs/uptop:latest
|
|
container_name: uptop-follower
|
|
sysctls:
|
|
- net.ipv4.ping_group_range=0 2147483647
|
|
ports:
|
|
- "23233:23234" # SSH (Mapped to different host port)
|
|
- "8081:8080" # HTTP (Mapped to different host port)
|
|
environment:
|
|
- UPTOP_DB_TYPE=postgres
|
|
# Connects to its OWN database
|
|
- UPTOP_DB_DSN=postgres://devuser:devpass@follower-db:5432/uptop_dev?sslmode=disable
|
|
- UPTOP_HTTP_PORT=8080
|
|
- UPTOP_STATUS_ENABLED=true
|
|
- UPTOP_STATUS_TITLE=Follower Node
|
|
|
|
# Cluster Config
|
|
- UPTOP_CLUSTER_MODE=follower
|
|
- UPTOP_CLUSTER_SECRET=mysecret # EXAMPLE ONLY — rotate before use
|
|
# IMPORTANT: Uses the Service Name "leader" to connect internally
|
|
- UPTOP_PEER_URL=http://leader:8080
|
|
depends_on:
|
|
- follower-db
|
|
stdin_open: true
|
|
tty: true
|
|
|
|
follower-db:
|
|
image: postgres:15-alpine
|
|
container_name: uptop-follower-db
|
|
environment:
|
|
POSTGRES_USER: devuser
|
|
POSTGRES_PASSWORD: devpass
|
|
POSTGRES_DB: uptop_dev
|
|
volumes:
|
|
- ./tmp/follower-data:/var/lib/postgresql/data |