# docker-compose.yml — thin top-level shell # # This file is the entry point for `docker compose`. It merges the # per-service fragments under services//compose.yml via the native # `include:` directive, plus the global `backend-network` definition. # # Why fragments live under services//: # - One folder per service family — supabase/ owns all 8 supabase-* # containers, n8n/ owns main+worker+init, etc. # - Each folder has a `service.yml` manifest (env vars, source variants, # dependencies, image refs) and a `compose.yml` fragment. # - Top-level `volumes:` from fragments are merged into the project # scope by Compose v2.20+; cross-fragment `depends_on` works since # v2.20+. Inline top-level `configs.content` (langfuse) needs v2.23.1. # Minimum documented version is v2.23.1; v2.26+ recommended. # # Adding a service: create services//{service.yml, compose.yml}, add # the include line below, and run `./start.sh` (the deferred bootstrapper # refactor will auto-discover includes from the manifests instead). include: # Data tier - services/supabase/compose.yml - services/supavisor/compose.yml - services/redis/compose.yml - services/minio/compose.yml - services/iceberg-rest/compose.yml - services/trino/compose.yml - services/redpanda/compose.yml - services/neo4j/compose.yml # Compute substrate (infra) - services/ray/compose.yml # Observability (infra) - services/prometheus/compose.yml - services/grafana/compose.yml - services/langfuse/compose.yml - services/tempo/compose.yml - services/loki/compose.yml - services/otel-collector/compose.yml # LLM tier (cloud-providers + tts-provider are virtual; no compose fragment) - services/litellm/compose.yml - services/ollama/compose.yml - services/tei-reranker/compose.yml # AI tier - services/weaviate/compose.yml - services/comfyui/compose.yml - services/asset-worker/compose.yml - services/asset-baker/compose.yml - services/crawl4ai/compose.yml - services/tika/compose.yml - services/parakeet/compose.yml - services/speaches/compose.yml - services/chatterbox/compose.yml - services/docling/compose.yml # App tier - services/backend/compose.yml - services/celery/compose.yml - services/open-webui/compose.yml - services/n8n/compose.yml - services/searxng/compose.yml - services/mcp-servers/compose.yml - services/local-deep-researcher/compose.yml - services/llm-graph-builder/compose.yml - services/jupyterhub/compose.yml - services/jenkins/compose.yml - services/mlflow/compose.yml - services/label-studio/compose.yml - services/verba/compose.yml - services/openclaw/compose.yml - services/hermes/compose.yml - services/trueforge/compose.yml - services/lightrag/compose.yml # Compute additions (2026-06-04) - services/spark/compose.yml - services/zeppelin/compose.yml - services/airflow/compose.yml # On-demand backup runner (disabled by default; invoke via services/backup/run-consistent-backup.sh) - services/backup/compose.yml # Public edge (outbound tunnel to Cloudflare; disabled by default) - services/cloudflared/compose.yml # Gateway last (depends on everything else it routes to) - services/kong/compose.yml networks: backend-network: name: ${PROJECT_NAME}-network driver: bridge