services: docling-serve: image: quay.io/docling-project/docling-serve:latest container_name: ag-ui-docling-serve ports: - "5001:5001" environment: - DOCLING_SERVE_ENABLE_UI=1 networks: - ag-ui-network restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5001/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s start_interval: 5s backend: build: context: ./backend dockerfile: Dockerfile ports: - "8000:8000" environment: - DB_PATH=/app/data/haiku.rag.lancedb # API keys (set these in your shell or .env file) - OPENAI_API_KEY=${OPENAI_API_KEY} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} # Ollama connection (use value from .env) - OLLAMA_BASE_URL=${OLLAMA_BASE_URL} # Prevent Python bytecode caching for development - PYTHONDONTWRITEBYTECODE=1 # Use local haiku_rag_slim for development - PYTHONPATH=/app/haiku_rag_slim volumes: - ${DB_PATH}:/app/data/haiku.rag.lancedb - ./haiku.rag.yaml:/app/haiku.rag.yaml:ro # Mount local haiku_rag_slim for development - ../../haiku_rag_slim:/app/haiku_rag_slim:ro networks: - ag-ui-network extra_hosts: - "host.docker.internal:host-gateway" depends_on: docling-serve: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] interval: 30s timeout: 10s retries: 3 frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3000:3000" environment: - BACKEND_URL=http://backend:8000 volumes: - ./frontend:/app - /app/node_modules - /app/.next depends_on: - backend networks: - ag-ui-network restart: unless-stopped networks: ag-ui-network: driver: bridge