# Ghost CMS MCP Server - Docker Compose
# For self-hosting on VPS
services:
mcp-ghostcms:
build: .
container_name: mcp-ghostcms
restart: unless-stopped
ports:
- "8091:8080"
environment:
- PORT=8080
- HOST=0.0.0.0
- ANALYTICS_DIR=/app/data
- NODE_ENV=production
# Optional: Default Ghost credentials for testing (users provide their own via query params)
- GHOST_API_URL=${GHOST_API_URL:-}
- GHOST_ADMIN_API_KEY=${GHOST_ADMIN_API_KEY:-}
- GHOST_API_VERSION=${GHOST_API_VERSION:-v5.0}
volumes:
- analytics-data:/app/data
- firebase-credentials:/app/.credentials:ro
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- mcp-network
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
mcp-network:
driver: bridge
volumes:
analytics-data:
driver: local
firebase-credentials:
driver: local