Files
madbase/docker-compose.pillar-system.yml
Vlad Durnea 0179cc285d
Some checks failed
CI/CD Pipeline / lint (push) Successful in 3m45s
CI/CD Pipeline / integration-tests (push) Failing after 57s
CI/CD Pipeline / unit-tests (push) Failing after 1m1s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped
M1 foundation: fix proxy, pool HTTP clients, split services, add ApiError + RLS
- Fix proxy body forwarding, round-robin load balancing, response streaming
- Pool reqwest::Client in proxy, control, and gateway (no per-request alloc)
- Harden CORS in gateway/main.rs (was allow_origin(Any), now uses ALLOWED_ORIGINS)
- Add common/src/error.rs: ApiError type with structured JSON responses
- Add common/src/rls.rs: RlsTransaction extractor for deduplicated RLS setup
- Fix tracing in all standalone binaries (EnvFilter instead of unused var)
- Dockerfile multi-stage: separate worker-runtime, control-runtime, proxy-runtime targets
- docker-compose.yml: split into worker/system/proxy services with health checks
- Fix Grafana port mapping in pillar-system (3030:3000)
- Add config/prometheus.yml and config/vmagent.yml
- Add .env.example with all required variables
- 55 tests pass (49 run + 6 ignored integration tests requiring external services)

Made-with: Cursor
2026-03-15 13:38:49 +02:00

61 lines
1.5 KiB
YAML

# MadBase - Pillar: System
# Control Plane API + Observability Stack (VM, Loki, Grafana)
services:
victoriametrics:
image: victoriametrics/victoria-metrics:latest
container_name: madbase_vm
ports:
- "8428:8428"
volumes:
- madbase_vm_data:/victoria-metrics-data
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- "--storageDataPath=/victoria-metrics-data"
- "--httpListenAddr=:8428"
- "--promscrape.config=/etc/prometheus/prometheus.yml"
restart: unless-stopped
loki:
image: grafana/loki:latest
container_name: madbase_loki
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
volumes:
- madbase_loki_data:/loki
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: madbase_grafana
ports:
- "3030:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin}
volumes:
- madbase_grafana_data:/var/lib/grafana
depends_on:
- victoriametrics
- loki
restart: unless-stopped
control:
build:
context: .
target: control-runtime
image: madbase/control:latest
container_name: madbase_control
ports:
- "8001:8001"
environment:
- DATABASE_URL=${DATABASE_URL}
- HETZNER_API_KEY=${HETZNER_API_KEY}
- HETZNER_SSH_KEY_PATH=${HETZNER_SSH_KEY_PATH}
restart: unless-stopped
volumes:
madbase_vm_data:
madbase_loki_data:
madbase_grafana_data: