-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
74 lines (72 loc) · 3.02 KB
/
docker-compose.dev.yml
File metadata and controls
74 lines (72 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
services:
qdrant:
image: qdrant/qdrant:v1.13.4
container_name: ai-localbase-qdrant-dev
restart: unless-stopped
ports:
- "${QDRANT_HTTP_PORT:-6333}:6333"
- "${QDRANT_GRPC_PORT:-6334}:6334"
volumes:
- ${QDRANT_STORAGE_PATH:-./qdrant_storage}:/qdrant/storage
backend:
build:
context: ./backend
dockerfile: ../docker/backend.dev.Dockerfile
container_name: ai-localbase-backend-dev
restart: unless-stopped
working_dir: /app
depends_on:
- qdrant
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
PORT: ${PORT:-8080}
UPLOAD_DIR: ${UPLOAD_DIR:-/app/data/uploads}
STATE_FILE: ${STATE_FILE:-/app/data/app-state.json}
CHAT_HISTORY_FILE: ${CHAT_HISTORY_FILE:-/app/data/chat-history.db}
QDRANT_URL: ${QDRANT_URL:-http://qdrant:6333}
QDRANT_API_KEY: ${QDRANT_API_KEY:-}
QDRANT_COLLECTION_PREFIX: ${QDRANT_COLLECTION_PREFIX:-kb_}
QDRANT_VECTOR_SIZE: ${QDRANT_VECTOR_SIZE:-768}
QDRANT_DISTANCE: ${QDRANT_DISTANCE:-Cosine}
QDRANT_TIMEOUT_SECONDS: ${QDRANT_TIMEOUT_SECONDS:-5}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://host.docker.internal:11434}
ENABLE_HYBRID_SEARCH: ${ENABLE_HYBRID_SEARCH:-false}
ENABLE_SEMANTIC_RERANKER: ${ENABLE_SEMANTIC_RERANKER:-false}
ENABLE_QUERY_REWRITE: ${ENABLE_QUERY_REWRITE:-false}
ENABLE_SEMANTIC_CACHE: ${ENABLE_SEMANTIC_CACHE:-false}
ENABLE_CONTEXT_COMPRESSION: ${ENABLE_CONTEXT_COMPRESSION:-false}
RETRIEVAL_TOPK_DOCUMENT: ${RETRIEVAL_TOPK_DOCUMENT:-6}
RETRIEVAL_CANDIDATE_TOPK_DOCUMENT: ${RETRIEVAL_CANDIDATE_TOPK_DOCUMENT:-12}
RETRIEVAL_TOPK_KNOWLEDGE_BASE: ${RETRIEVAL_TOPK_KNOWLEDGE_BASE:-10}
RETRIEVAL_CANDIDATE_TOPK_ALL_DOCS: ${RETRIEVAL_CANDIDATE_TOPK_ALL_DOCS:-32}
RETRIEVAL_MAX_CHUNKS_PER_DOCUMENT: ${RETRIEVAL_MAX_CHUNKS_PER_DOCUMENT:-2}
RETRIEVAL_MAX_CONTEXT_CHARS: ${RETRIEVAL_MAX_CONTEXT_CHARS:-2400}
RETRIEVAL_ENABLE_AUTO_EXPAND: ${RETRIEVAL_ENABLE_AUTO_EXPAND:-false}
ENABLE_MCP: ${ENABLE_MCP:-true}
MCP_BASE_PATH: ${MCP_BASE_PATH:-/mcp}
MCP_REQUEST_TIMEOUT_SECONDS: ${MCP_REQUEST_TIMEOUT_SECONDS:-15}
MCP_REQUESTS_PER_MINUTE: ${MCP_REQUESTS_PER_MINUTE:-120}
GO111MODULE: "on"
command: sh -c "go mod download && go run ."
ports:
- "${PORT:-8080}:${PORT:-8080}"
volumes:
- ./backend:/app
frontend:
image: node:20.19-alpine
container_name: ai-localbase-frontend-dev
restart: unless-stopped
working_dir: /app
depends_on:
- backend
environment:
VITE_API_BASE_URL: ${VITE_API_BASE_URL:-http://localhost:8080}
VITE_DEV_PROXY_TARGET: ${VITE_DEV_PROXY_TARGET:-http://backend:8080}
CHOKIDAR_USEPOLLING: "true"
command: sh -c "npm ci && until wget -qO- http://backend:${PORT:-8080}/health >/dev/null 2>&1; do echo 'waiting for backend...'; sleep 2; done && npm run dev -- --host 0.0.0.0 --port 4173"
ports:
- "${FRONTEND_PORT:-4173}:4173"
volumes:
- ./frontend:/app
- /app/node_modules