-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.coolify.yml
More file actions
71 lines (68 loc) · 2.24 KB
/
docker-compose.coolify.yml
File metadata and controls
71 lines (68 loc) · 2.24 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
# docker-compose.coolify.yml
# For Coolify deployment - connects to external PostgreSQL and Qdrant
services:
# Python API (public at cems.chocksy.com)
cems-server:
image: chocksy/cems-server:latest
pull_policy: always
environment:
CEMS_DATABASE_URL: ${CEMS_DATABASE_URL}
CEMS_QDRANT_URL: ${CEMS_QDRANT_URL}
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
CEMS_ADMIN_KEY: ${CEMS_ADMIN_KEY}
CEMS_MODE: server
CEMS_SERVER_HOST: 0.0.0.0
CEMS_SERVER_PORT: 8765
CEMS_MCP_PUBLIC_URL: https://mcp-cems.chocksy.com/mcp
# Memory limit prevents OOM cascade that kills other services on the host.
# Idle: ~115 MB RSS. Search joins chunks with doc metadata (not full content).
mem_limit: 768m
memswap_limit: 768m
expose:
- "8765"
labels:
- "traefik.enable=true"
- "traefik.http.routers.cems-server.rule=Host(`cems.chocksy.com`)"
- "traefik.http.routers.cems-server.entryPoints=https"
- "traefik.http.routers.cems-server.tls=true"
- "traefik.http.routers.cems-server.tls.certresolver=letsencrypt"
- "traefik.http.services.cems-server.loadbalancer.server.port=8765"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8765/health"]
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
networks:
- coolify
# Express MCP wrapper (public at mcp-cems.chocksy.com)
cems-mcp:
build:
context: ./mcp-wrapper
dockerfile: Dockerfile
environment:
PYTHON_API_URL: http://cems-server:8765
PORT: 8766
expose:
- "8766"
labels:
- "traefik.enable=true"
- "traefik.http.routers.cems-mcp.rule=Host(`mcp-cems.chocksy.com`)"
- "traefik.http.routers.cems-mcp.entryPoints=https"
- "traefik.http.routers.cems-mcp.tls=true"
- "traefik.http.routers.cems-mcp.tls.certresolver=letsencrypt"
- "traefik.http.services.cems-mcp.loadbalancer.server.port=8766"
depends_on:
cems-server:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8766/health"]
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
networks:
- coolify
networks:
coolify:
external: true