services: postgres: image: pgvector/pgvector:pg16 container_name: hindsight-postgres environment: POSTGRES_USER: hindsight POSTGRES_PASSWORD: hindsight_dev POSTGRES_DB: hindsight ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U hindsight"] interval: 5s timeout: 5s retries: 5 networks: - hindsight-network api: build: context: .. dockerfile: docker/api.Dockerfile container_name: hindsight-api environment: HINDSIGHT_API_DATABASE_URL: postgresql://hindsight:hindsight_dev@postgres:5432/hindsight HINDSIGHT_API_LLM_PROVIDER: ${HINDSIGHT_API_LLM_PROVIDER:-groq} HINDSIGHT_API_LLM_API_KEY: ${HINDSIGHT_API_LLM_API_KEY} HINDSIGHT_API_LLM_MODEL: ${HINDSIGHT_API_LLM_MODEL:-openai/gpt-oss-20b} HINDSIGHT_API_LLM_BASE_URL: ${HINDSIGHT_API_LLM_BASE_URL} HINDSIGHT_API_HOST: 0.0.0.0 HINDSIGHT_API_PORT: 8888 ports: - "8888:8888" depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8888/api/v1/agents"] interval: 10s timeout: 5s retries: 5 start_period: 30s networks: - hindsight-network restart: unless-stopped control-plane: build: context: ../hindsight-control-plane dockerfile: ../docker/control-plane.Dockerfile container_name: hindsight-control-plane environment: NODE_ENV: production HOSTNAME: 0.0.0.0 PORT: 9999 HINDSIGHT_CP_DATAPLANE_API_URL: http://api:8888 ports: - "9999:9999" depends_on: api: condition: service_healthy healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9999/"] interval: 10s timeout: 5s retries: 5 start_period: 30s networks: - hindsight-network restart: unless-stopped networks: hindsight-network: driver: bridge volumes: postgres_data: