# SmartKasa MCP Server - Docker Compose
# ======================================
services:
smartkasa-mcp:
build: .
container_name: smartkasa-mcp-server
restart: unless-stopped
ports:
- "8080:8080"
environment:
- SMARTKASA_TRANSPORT=sse
- SMARTKASA_SSE_HOST=0.0.0.0
- SMARTKASA_SSE_PORT=8080
- SMARTKASA_LOG_LEVEL=INFO
# Credentials - use .env file or secrets
- SMARTKASA_API_KEY=${SMARTKASA_API_KEY}
- SMARTKASA_PHONE=${SMARTKASA_PHONE}
- SMARTKASA_PASSWORD=${SMARTKASA_PASSWORD}
healthcheck:
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://localhost:8080/health')",
]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
# Resource limits (adjust as needed)
deploy:
resources:
limits:
cpus: "0.5"
memory: 256M
reservations:
cpus: "0.1"
memory: 128M
# Security options
security_opt:
- no-new-privileges:true
read_only: true
tmpfs:
- /tmp
# Optional: Reverse proxy with HTTPS (uncomment if needed)
# caddy:
# image: caddy:2-alpine
# restart: unless-stopped
# ports:
# - "80:80"
# - "443:443"
# volumes:
# - ./Caddyfile:/etc/caddy/Caddyfile:ro
# - caddy_data:/data
# - caddy_config:/config
# depends_on:
# - smartkasa-mcp
# volumes:
# caddy_data:
# caddy_config: