81 lines
2.1 KiB
YAML
81 lines
2.1 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
ollama:
|
|
image: ollama/ollama:latest
|
|
container_name: code-forge-ollama
|
|
ports:
|
|
- "11434:11434"
|
|
volumes:
|
|
- ./data/ollama:/root/.ollama
|
|
environment:
|
|
- OLLAMA_NUM_PARALLEL=2 # Allow 2 parallel requests
|
|
- OLLAMA_MAX_LOADED_MODELS=2 # Keep both embed and LLM in memory
|
|
- OLLAMA_KEEP_ALIVE=15m # Keep models loaded longer
|
|
- OLLAMA_MODELS=/root/.ollama/models
|
|
- OLLAMA_NUM_THREADS=8 # Use more CPU threads
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 16G # Limit to 16GB (plenty for 8B model)
|
|
reservations:
|
|
memory: 8G # Reserve 8GB minimum
|
|
networks:
|
|
- code-forge-network
|
|
restart: unless-stopped
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: code-forge-app
|
|
ports:
|
|
- "8501:8501" # Streamlit UI (Legacy)
|
|
- "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
|
|
- POSTGRES_HOST=host.docker.internal
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=codeforge
|
|
- POSTGRES_USER=${USER}
|
|
- POSTGRES_PASSWORD=
|
|
- DATABASE_URL=postgresql://${USER}@host.docker.internal:5432/codeforge
|
|
- MCP_SERVER_HOST=0.0.0.0
|
|
- MCP_SERVER_PORT=8051
|
|
networks:
|
|
- code-forge-network
|
|
depends_on:
|
|
- ollama
|
|
restart: unless-stopped
|
|
|
|
frontend:
|
|
image: node:20-alpine
|
|
container_name: code-forge-frontend
|
|
working_dir: /app
|
|
ports:
|
|
- "5173:5173" # Vite dev server
|
|
volumes:
|
|
- ./frontend:/app
|
|
- /app/node_modules # Prevent node_modules from being overwritten
|
|
command: sh -c "npm install && npm run dev -- --host 0.0.0.0"
|
|
environment:
|
|
- VITE_API_URL=http://localhost:8051
|
|
networks:
|
|
- code-forge-network
|
|
depends_on:
|
|
- app
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
code-forge-network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
uploads:
|
|
|