docker-compose.yml•1.65 kB
services:
# Hostaway MCP Server
hostaway-mcp:
build:
context: .
dockerfile: Dockerfile
container_name: hostaway-mcp-server
ports:
- "8000:8000"
environment:
# Hostaway API Configuration
- HOSTAWAY_ACCOUNT_ID=${HOSTAWAY_ACCOUNT_ID}
- HOSTAWAY_SECRET_KEY=${HOSTAWAY_SECRET_KEY}
- HOSTAWAY_API_BASE_URL=${HOSTAWAY_API_BASE_URL:-https://api.hostaway.com/v1}
# Rate Limiting Configuration
- RATE_LIMIT_IP=${RATE_LIMIT_IP:-15}
- RATE_LIMIT_ACCOUNT=${RATE_LIMIT_ACCOUNT:-20}
- MAX_CONCURRENT_REQUESTS=${MAX_CONCURRENT_REQUESTS:-10}
# Application Configuration
- LOG_LEVEL=${LOG_LEVEL:-INFO}
- ENVIRONMENT=${ENVIRONMENT:-development}
env_file:
- .env
volumes:
# Mount source code for development (hot reload)
- ./src:/app/src:ro
# Mount logs directory
- ./logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD", "python", "-c", "import httpx; httpx.get('http://localhost:8000/health', timeout=5.0).raise_for_status()"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- mcp-network
# Development tools (optional, uncomment as needed)
# Nginx reverse proxy for production-like setup
# nginx:
# image: nginx:alpine
# container_name: hostaway-mcp-nginx
# ports:
# - "80:80"
# - "443:443"
# volumes:
# - ./nginx.conf:/etc/nginx/nginx.conf:ro
# - ./ssl:/etc/nginx/ssl:ro
# depends_on:
# - hostaway-mcp
# networks:
# - mcp-network
networks:
mcp-network:
driver: bridge