haiku.rag/examples/docker/docker-compose.yml

60 lines
1.6 KiB
YAML

services:
haiku-rag:
build:
context: ../..
dockerfile: docker/Dockerfile
container_name: haiku-rag
ports:
- "8000:8000" # A2A server
- "8001:8001" # MCP server
volumes:
- ./data:/data # Persist database
- ./docs:/docs # Mount documents directory for monitoring
environment:
# Database directory
- DEFAULT_DATA_DIR=/data
# File monitoring
- MONITOR_DIRECTORIES=/docs
# Set the Ollama base url for Ollama defaults
- OLLAMA_BASE_URL=http://host.docker.internal:11434
# Embeddings provider (choose one)
# For OpenAI:
# - EMBEDDINGS_PROVIDER=openai
# - EMBEDDINGS_MODEL=text-embedding-3-small
# - OPENAI_API_KEY=your-key-here
# For VoyageAI:
# - EMBEDDINGS_PROVIDER=voyageai
# - EMBEDDINGS_MODEL=voyage-3
# - VOYAGE_API_KEY=your-key-here
# QA provider (uses Pydantic AI)
# - QA_PROVIDER=ollama
# For OpenAI:
# - QA_PROVIDER=openai
# - QA_MODEL=gpt-4o-mini
# - OPENAI_API_KEY=your-key-here
# Reranking (optional)
# - RERANKING_PROVIDER=mxbai
# - RERANKING_MODEL=mixedbread-ai/mxbai-rerank-large-v1
# - RERANKING_BASE_URL=http://host.docker.internal:11434
# Research agent (optional, defaults to QA provider/model)
# - RESEARCH_PROVIDER=openai
# - RESEARCH_MODEL=gpt-4o
# Environment
- ENV=production
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s