version: '3.8' services: ollama: image: ollama/ollama:latest container_name: code-forge-ollama ports: - "11434:11434" volumes: - ollama_models:/root/.ollama environment: - OLLAMA_NUM_PARALLEL=1 - OLLAMA_MAX_LOADED_MODELS=1 - OLLAMA_KEEP_ALIVE=5m networks: - code-forge-network restart: unless-stopped chromadb: image: chromadb/chroma:latest container_name: code-forge-chromadb ports: - "8000:8000" volumes: - chroma_data:/chroma/chroma environment: - IS_PERSISTENT=TRUE - ANONYMIZED_TELEMETRY=FALSE networks: - code-forge-network restart: unless-stopped app: build: context: . dockerfile: Dockerfile container_name: code-forge-app ports: - "8501:8501" # Streamlit UI - "8051:8051" # MCP Server volumes: - ./app:/workspace/app - ./mcp_server:/workspace/mcp_server - uploads:/workspace/data/uploads # Uncomment to mount a local directory for bulk import: # - /path/to/your/docs:/workspace/mounted_docs:ro environment: - OLLAMA_HOST=http://ollama:11434 - CHROMA_HOST=chromadb - CHROMA_PORT=8000 - MCP_SERVER_HOST=0.0.0.0 - MCP_SERVER_PORT=8051 networks: - code-forge-network depends_on: - ollama - chromadb restart: unless-stopped networks: code-forge-network: driver: bridge volumes: ollama_models: chroma_data: uploads: