# Production compose for server-infra deploy. No bundled Postgres — use shared # external DB via DATABASE_URL in .env (see .env.prod.example). services: web: build: . restart: unless-stopped ports: - "${WEB_PORT:-8003}:8000" env_file: - .env volumes: # Chroma vector index only (uploaded file blobs live in Postgres). - chroma_data:/app/llm_be/chroma_db # Celery worker for long-running agent tasks (#63). Only started when the # `agentic` profile is enabled and REDIS_URL/CELERY_BROKER_URL are set in # .env (control-node secret) — points at a shared Redis instance, no # bundled `redis` service here (mirrors the "no bundled Postgres" policy). worker: build: . profiles: ["agentic"] restart: unless-stopped command: ["uv", "run", "celery", "-A", "llm_be", "worker", "--loglevel=info"] env_file: - .env volumes: chroma_data: