version: '3.8'
services:
clickup-mcp:
build:
context: .
dockerfile: Dockerfile
image: mcp/clickup-server:latest
container_name: clickup-mcp
restart: unless-stopped
ports:
- "${PORT:-3000}:3000"
environment:
- NODE_ENV=${NODE_ENV:-production}
- CLICKUP_CLIENT_ID=${CLICKUP_CLIENT_ID}
- CLICKUP_CLIENT_SECRET=${CLICKUP_CLIENT_SECRET}
- CLICKUP_REDIRECT_URI=${CLICKUP_REDIRECT_URI}
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
- LOG_LEVEL=${LOG_LEVEL:-info}
volumes:
- .env:/app/.env:ro
networks:
- mcp-network
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
security_opt:
- no-new-privileges:true
read_only: true
tmpfs:
- /tmp
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
networks:
mcp-network:
driver: bridge