name: ${COMPOSE_PROJECT_NAME:-calq-mcp}
services:
calq:
build: .
ports:
- "${MCP_PORT:-3000}:${MCP_PORT:-3000}"
environment:
- MCP_PORT=${MCP_PORT:-3000}
- DATABASE_URL=postgres://calq:${POSTGRES_PASSWORD:-calq}@postgres:5432/calq
- VOYAGE_API_KEY=${VOYAGE_API_KEY}
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
- CHROMA_URL=http://chromadb:8000
- BASE_URL=${BASE_URL:-http://localhost:${MCP_PORT:-3000}}
volumes:
- calq-data:/data
depends_on:
postgres:
condition: service_healthy
chromadb:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:${MCP_PORT:-3000}/health"]
interval: 30s
timeout: 10s
start_period: 5s
retries: 3
restart: unless-stopped
discord-bot:
build: ./discord-bot
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- CALQ_MCP_URL=${BASE_URL:-http://calq:${MCP_PORT:-3000}}/mcp
depends_on:
calq:
condition: service_healthy
restart: unless-stopped
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_USER=calq
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-calq}
- POSTGRES_DB=calq
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U calq"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
chromadb:
image: chromadb/chroma:latest
ports:
- "${CHROMA_PORT:-8000}:8000"
volumes:
- chroma-data:/chroma/chroma
environment:
- ANONYMIZED_TELEMETRY=false
- ALLOW_RESET=false
healthcheck:
test: ["CMD", "bash", "-c", "</dev/tcp/localhost/8000"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
volumes:
calq-data:
postgres-data:
chroma-data: