version: '3.8' services: # Qdrant vector database qdrant: image: qdrant/qdrant:latest container_name: llm-brains-qdrant ports: - "6333:6333" - "6334:6334" volumes: - qdrant_data:/qdrant/storage environment: - QDRANT__SERVICE__GRPC_PORT=6334 restart: unless-stopped networks: - llm-brains-network # Redis cache (optional) redis: image: redis:7-alpine container_name: llm-brains-redis ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --appendonly yes restart: unless-stopped networks: - llm-brains-network # LLM-Brains API api: build: context: . dockerfile: Dockerfile container_name: llm-brains-api ports: - "8000:8000" environment: - BRAIN_ID=${BRAIN_ID:-carmack} - LLM_PROVIDER=${LLM_PROVIDER:-deepseek} - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://host.docker.internal:11434} - QDRANT_URL=http://qdrant:6333 - REDIS_URL=redis://redis:6379 - LOG_LEVEL=${LOG_LEVEL:-INFO} volumes: - ./data:/app/data - ./src:/app/src depends_on: - qdrant - redis restart: unless-stopped networks: - llm-brains-network command: python src/api/server.py # Gradio chat interface chat: build: context: . dockerfile: Dockerfile container_name: llm-brains-chat ports: - "7860:7860" environment: - BRAIN_ID=${BRAIN_ID:-carmack} - LLM_PROVIDER=${LLM_PROVIDER:-deepseek} - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://host.docker.internal:11434} - QDRANT_URL=http://qdrant:6333 - REDIS_URL=redis://redis:6379 volumes: - ./data:/app/data - ./src:/app/src depends_on: - qdrant - redis restart: unless-stopped networks: - llm-brains-network command: python src/interface/chat.py # Optional: Ollama for local LLM (if not using external API) ollama: image: ollama/ollama:latest container_name: llm-brains-ollama ports: - "11434:11434" volumes: - ollama_data:/root/.ollama restart: unless-stopped networks: - llm-brains-network # Uncomment if you have NVIDIA GPU # deploy: # resources: # reservations: # devices: # - driver: nvidia # count: 1 # capabilities: [gpu] volumes: qdrant_data: driver: local redis_data: driver: local ollama_data: driver: local networks: llm-brains-network: driver: bridge