Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped
133 lines
3.2 KiB
YAML
133 lines
3.2 KiB
YAML
id: all-in-one
|
|
name: All-in-One Development Node
|
|
description: Complete MadBase stack on a single server for development/testing
|
|
version: 1.0
|
|
|
|
min_hetzner_plan: CX41
|
|
estimated_monthly_cost: 25.60
|
|
|
|
services:
|
|
- id: postgresql
|
|
name: PostgreSQL
|
|
image: registry.gitlab.com/postgres-ai/postgresql-autobase/patroni:3.0.2
|
|
ports: ["5432:5432", "8008:8008"]
|
|
resource_profile: balanced
|
|
|
|
- id: etcd
|
|
name: etcd
|
|
image: quay.io/coreos/etcd:v3.5.9
|
|
ports: ["2379:2379", "2380:2380"]
|
|
resource_profile: minimal
|
|
|
|
- id: haproxy
|
|
name: HAProxy
|
|
image: haproxy:2.8-alpine
|
|
ports: ["5433:5433"]
|
|
resource_profile: minimal
|
|
|
|
- id: redis
|
|
name: Redis
|
|
image: redis:7-alpine
|
|
ports: ["6379:6379"]
|
|
resource_profile: minimal
|
|
|
|
- id: minio
|
|
name: MinIO
|
|
image: quay.io/minio/minio:latest
|
|
ports: ["9000:9000", "9001:9001"]
|
|
command: ["server", "/data", "--console-address", ":9001"]
|
|
environment:
|
|
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
|
|
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
|
|
volumes:
|
|
- minio_data:/data
|
|
resource_profile: balanced
|
|
optional: true
|
|
condition: USE_SELF_HOSTED_STORAGE == true
|
|
|
|
- id: worker
|
|
name: MadBase Worker
|
|
image: madbase/worker:latest
|
|
ports: ["8002:8002"]
|
|
replicas: 2
|
|
resource_profile: cpu_intensive
|
|
|
|
- id: proxy
|
|
name: Gateway Proxy
|
|
image: madbase/proxy:latest
|
|
ports: ["8080:8080"]
|
|
resource_profile: balanced
|
|
|
|
- id: control
|
|
name: Control Plane API
|
|
image: madbase/control:latest
|
|
ports: ["8001:8001"]
|
|
resource_profile: balanced
|
|
|
|
- id: victoria
|
|
name: VictoriaMetrics
|
|
image: victoriametrics/victoria-metrics:latest
|
|
ports: ["8428:8428"]
|
|
volumes:
|
|
- vm_data:/victoria-metrics-data
|
|
resource_profile: balanced
|
|
|
|
- id: loki
|
|
name: Loki
|
|
image: grafana/loki:latest
|
|
ports: ["3100:3100"]
|
|
volumes:
|
|
- loki_data:/loki
|
|
resource_profile: balanced
|
|
|
|
- id: vmagent
|
|
name: VictoriaMetrics Agent
|
|
image: victoriametrics/vmagent:latest
|
|
ports: ["8429:8429"]
|
|
resource_profile: minimal
|
|
|
|
- id: promtail
|
|
name: Promtail
|
|
image: grafana/promtail:latest
|
|
volumes:
|
|
- /var/log:/var/log:ro
|
|
- ./config/promtail.yml:/etc/promtail/config.yml:ro
|
|
resource_profile: minimal
|
|
|
|
- id: grafana
|
|
name: Grafana
|
|
image: grafana/grafana:latest
|
|
ports: ["3030:3030"]
|
|
environment:
|
|
GF_SECURITY_ADMIN_USER: ${GRAFANA_USER:-admin}
|
|
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD}
|
|
GF_SERVER_ROOT_URL: http://localhost:3030
|
|
GF_INSTALL_PLUGINS: grafana-piechart-panel
|
|
volumes:
|
|
- grafana_data:/var/lib/grafana
|
|
resource_profile: balanced
|
|
|
|
requirements:
|
|
min_nodes: 1
|
|
max_nodes: 1
|
|
supports_ha: false
|
|
recommended_deployment: "Single server for development, testing, or production MVP"
|
|
|
|
notes: |
|
|
This template runs ALL services on one machine.
|
|
Not recommended for production with significant traffic.
|
|
Upgrade to dedicated templates when:
|
|
- CPU usage > 70% sustained
|
|
- Memory usage > 80%
|
|
- Need true HA for database
|
|
|
|
networks:
|
|
frontend:
|
|
ports: [8080, 3030]
|
|
backend:
|
|
ports: [8001, 8002, 5433, 6379]
|
|
monitoring:
|
|
ports: [8428, 3100, 8429]
|
|
storage:
|
|
ports: [9000, 9001]
|