docker-compose.yml•2.06 kB
# SmartSuite MCP Server - Docker Compose Configuration
version: '3.8'
services:
smartsuite-mcp:
build:
context: .
dockerfile: Dockerfile
target: production
image: smartsuite-mcp:latest
container_name: smartsuite-mcp
# Environment variables (REQUIRED)
# Set these in .env file or directly here
environment:
- NODE_ENV=production
- LOG_LEVEL=info
- SMARTSUITE_API_KEY=${SMARTSUITE_API_KEY}
- SMARTSUITE_WORKSPACE_ID=${SMARTSUITE_WORKSPACE_ID}
# Optional overrides
- SMARTSUITE_API_URL=${SMARTSUITE_API_URL:-https://app.smartsuite.com/api/v1}
- SMARTSUITE_DRY_RUN=${SMARTSUITE_DRY_RUN:-false}
- DEBUG=${DEBUG:-false}
# Volumes for configuration and logs
volumes:
# Mount configuration (optional - for custom field mappings)
- ./config:/app/config:ro
# Mount logs directory (optional - for persistent logs)
- ./logs:/app/logs
# Restart policy
restart: unless-stopped
# Health check
healthcheck:
test: ["CMD", "node", "-e", "process.exit(0)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Resource limits (adjust based on your needs)
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
cpus: '0.25'
memory: 256M
# Logging configuration
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Security options
security_opt:
- no-new-privileges:true
# Read-only root filesystem (commented out - may need write access for logs)
# read_only: true
# User (runs as non-root user defined in Dockerfile)
# user: "1001:1001"
# Networks (if needed for multi-container setup)
# networks:
# - smartsuite-network
# Uncomment if using custom networks
# networks:
# smartsuite-network:
# driver: bridge
# Uncomment if you need persistent volumes
# volumes:
# smartsuite-logs:
# smartsuite-config: