guard/deploy/docker-compose.yml
loki5512344 269daa071f
v0.3: 6-layer architecture complete
Layers:
  Layer 1: XDP/eBPF — TCP state machine, SYN throttle, blacklist, ringbuf
  Layer 2: PoW Challenge — SHA-256 hashcash, dynamic difficulty, constant-time verify
  Layer 3: Rust Core — HMAC handshake, rate limit, death code (existing)
  Layer 4: Velocity — Physics check, CAPTCHA, protocol verification
  Layer 5: Paper — Heartbeat, auto-registration (existing)
  Layer 6: Traffic Intel — EWMA, 168h profiling, reputation, alerts

Infra: XDP→Prometheus metrics, ClickHouse + Grafana dashboard, Docker Compose
Testing: 100-IP DDoS simulation, MHDDoS ref analysis, load test report
Fixes: VarInt sign extension UB, pure ACK deadlock, RST/FIN cleanup
Ref: MHDDoS, Sonar, LimboFilter, AtomGuard, Infrarust, MC-XDP-eBPF, PowGo
2026-07-21 15:47:36 +02:00

78 lines
1.9 KiB
YAML

services:
redis:
image: redis:7-alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 3s
timeout: 1s
retries: 5
clickhouse:
image: clickhouse/clickhouse-server:latest
container_name: rampart-clickhouse
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./clickhouse/schema.sql:/docker-entrypoint-initdb.d/schema.sql:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8123/ping"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: rampart-grafana
ports:
- "3000:3000"
depends_on:
clickhouse:
condition: service_started
environment:
GF_INSTALL_PLUGINS: grafana-clickhouse-datasource
volumes:
- ./grafana/datasources:/etc/grafana/provisioning/datasources:ro
- ./grafana/dashboards:/etc/grafana/provisioning/dashboards:ro
restart: unless-stopped
edge:
build:
context: ..
dockerfile: deploy/docker/Dockerfile.edge
ports:
- "25565:25565"
environment:
RAMPART_CONFIG: /etc/rampart/config.toml
volumes:
- ./config/edge.toml:/etc/rampart/config.toml:ro
depends_on:
redis:
condition: service_healthy
velocity:
build:
context: ../..
dockerfile: deploy/docker/Dockerfile.velocity
environment:
RAMPART_HMAC_SECRET: test_secret_32_bytes_long_for_integration_test
RAMPART_ALLOWED_DOMAINS: play.example.com
ports:
- "25577:25577"
depends_on:
- paper
paper:
build:
context: ../..
dockerfile: deploy/docker/Dockerfile.paper
environment:
EULA: "true"
RAMPART_HMAC_SECRET: test_secret_32_bytes_long_for_integration_test
RAMPART_ALLOWED_DOMAINS: play.example.com
ports:
- "25566:25566"
depends_on:
- redis