version: '3.8' services: # Python Backend (FastAPI) backend: build: context: ./backend/python dockerfile: Dockerfile ports: - "8000:8000" environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} volumes: - ./backend/python:/app - ./data:/app/data restart: unless-stopped # Frontend (React + Vite) frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3000:3000" environment: - VITE_API_URL=http://localhost:8000 volumes: - ./frontend:/app - /app/node_modules depends_on: - backend restart: unless-stopped # SearXNG (Search Engine for free mode) searxng: image: searxng/searxng:latest ports: - "8888:8080" environment: - BASE_URL=http://localhost:8888/ - INSTANCE_NAME=AskOnce Search volumes: - ./docker/searxng:/etc/searxng:rw restart: unless-stopped profiles: - free volumes: data: