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]