# Fallback local dev (no kind). Prefer `tilt up` for the real flow. # Usage from repo root: docker compose -f ctrl/docker-compose.yml up -d x-common-env: &common-env DATABASE_URL: postgresql://nvi:nvi@postgres:5432/nvi LANGFUSE_HOST: ${LANGFUSE_HOST:-http://host.docker.internal:3000} LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY:-} LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY:-} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} ANTHROPIC_MODEL: ${ANTHROPIC_MODEL:-claude-sonnet-4-6} services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: nvi POSTGRES_PASSWORD: nvi POSTGRES_DB: nvi ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U nvi -d nvi"] interval: 5s retries: 10 api: build: context: .. dockerfile: ctrl/Dockerfile.api environment: *common-env ports: - "8000:8000" volumes: # Bind-mount data dirs so `make seed-fetch` downloads on the host land # in the container without rebuilding the image. - ./seed/data:/app/seed/data - ../api/evals/data:/app/api/evals/data depends_on: postgres: condition: service_healthy ui: build: context: .. dockerfile: ctrl/Dockerfile.ui ports: - "8060:80" depends_on: - api docs: build: context: .. dockerfile: ctrl/Dockerfile.docs ports: - "8061:80" volumes: pgdata: