docker-compose.ymlโข1.47 kB
version: '3.8'
services:
  roblox-mcp:
    build:
      context: ..
      dockerfile: docker/Dockerfile
    container_name: roblox-mcp-server
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - PORT=3000
      - ROBLOX_MCP_HMAC_SECRET=${ROBLOX_MCP_HMAC_SECRET:-your_secure_hmac_secret_here}
      - DB_PATH=/app/data/roblox_mcp.db
      - ROBLOX_MCP_VERBOSE=false
      - CORS_ORIGIN=${CORS_ORIGIN:-*}
      - RATE_LIMIT_WINDOW_MS=900000
      - RATE_LIMIT_MAX_REQUESTS=100
      - LOG_LEVEL=info
    volumes:
      - roblox_data:/app/data
      - roblox_logs:/app/logs
      - roblox_backups:/app/backups
    networks:
      - roblox-network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
  # Optional: Add a reverse proxy for production
  nginx:
    image: nginx:alpine
    container_name: roblox-mcp-nginx
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/ssl:/etc/nginx/ssl:ro
    depends_on:
      - roblox-mcp
    networks:
      - roblox-network
    profiles:
      - production
volumes:
  roblox_data:
  roblox_logs:
  roblox_backups:
networks:
  roblox-network:
    driver: bridge