-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
59 lines (58 loc) · 1.96 KB
/
Copy pathdocker-compose.yml
File metadata and controls
59 lines (58 loc) · 1.96 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
# OCD (Omni Coder Dashboard) — Docker Compose
#
# Usage:
# docker compose up # start in foreground
# docker compose up -d # start in background
# docker compose down # stop
#
# The dashboard auto-discovers your AI tool data from host mounts (read-only).
# Semantic embeddings (ONNX) work out of the box — no API keys needed.
# Database and model cache are persisted in ./data/
services:
dashboard:
build: .
env_file:
- path: .env
required: false
ports:
- "3030:3030"
volumes:
# AI tool data (read-only from host)
# Windows: set CLAUDE_DIR, CURSOR_DIR, GEMINI_DIR in .env or shell
# e.g. CLAUDE_DIR=C:/Users/YourName/.claude
# macOS/Linux: defaults work automatically (~/.claude, etc.)
- type: bind
source: ${CLAUDE_DIR:-~/.claude}
target: /home/dashboard/.claude
read_only: true
- type: bind
source: ${CURSOR_DIR:-~/.cursor}
target: /home/dashboard/.cursor
read_only: true
- type: bind
source: ${GEMINI_DIR:-~/.gemini}
target: /home/dashboard/.gemini
read_only: true
# Persistent database
- ./data:/app/data
environment:
- PORT=3030
- DB_PATH=/app/data/analytics.db
- BIND=0.0.0.0 # required for Docker — container needs to accept external connections
- AUTH_TOKEN=${OCD_AUTH_TOKEN:-ocd-local-dev}
# Ollama running on host (Docker Desktop: use host.docker.internal)
# - OLLAMA_HOST=http://host.docker.internal:11434
# - OLLAMA_MODEL=qwen2.5-coder:7b
# Azure OpenAI (alternative to Ollama)
# - AZURE_OPENAI_API_KEY=
# - AZURE_OPENAI_ENDPOINT=
# - AZURE_OPENAI_DEPLOYMENT_CHAT=gpt-5.2-chat
# Other providers
# - ANTHROPIC_API_KEY=
# - OPENAI_API_KEY=
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:3030/api/health"]
interval: 30s
timeout: 5s
retries: 3