Skip to main content
Glama
by DemoDaygit
docker-compose.ymlβ€’4.38 kB
version: '3.8' services: # Frontend - Next.js Application frontend: build: context: . dockerfile: Dockerfile.frontend ports: - "3000:3000" environment: - NODE_ENV=production - NEXT_PUBLIC_API_URL=http://localhost:8000 depends_on: - mcp-server networks: - mcp-network restart: unless-stopped # MCP Server - Main Backend mcp-server: build: context: ./mcp_server dockerfile: Dockerfile ports: - "8000:8000" - "9090:9090" # Metrics port environment: - DATABASE_URL=postgresql+asyncpg://postgres:password@postgres:5432/mcp_db - REDIS_URL=redis://redis:6379 - EVOLUTION_API_KEY=${EVOLUTION_API_KEY} - OPENAI_API_KEY=${OPENAI_API_KEY} - HUGGINGFACE_API_KEY=${HUGGINGFACE_API_KEY} - SECRET_KEY=${SECRET_KEY:-your-secret-key-change-in-production} - DEBUG=false depends_on: - postgres - redis networks: - mcp-network restart: unless-stopped volumes: - ./logs:/app/logs # Agent System - Multi-Agent Processing agent-system: build: context: ./agent_system dockerfile: Dockerfile environment: - MCP_SERVER_URL=http://mcp-server:8000 - REDIS_URL=redis://redis:6379 - EVOLUTION_API_KEY=${EVOLUTION_API_KEY} - OPENAI_API_KEY=${OPENAI_API_KEY} depends_on: - mcp-server - redis networks: - mcp-network restart: unless-stopped deploy: replicas: 2 # PostgreSQL Database postgres: image: postgres:15-alpine environment: - POSTGRES_DB=mcp_db - POSTGRES_USER=postgres - POSTGRES_PASSWORD=password ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data - ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql networks: - mcp-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 30s timeout: 10s retries: 3 # Redis Cache redis: image: redis:7-alpine ports: - "6379:6379" volumes: - redis_data:/data networks: - mcp-network restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 # Nginx Reverse Proxy nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./ssl:/etc/nginx/ssl depends_on: - frontend - mcp-server networks: - mcp-network restart: unless-stopped # Prometheus Monitoring prometheus: image: prom/prometheus:latest ports: - "9091:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--storage.tsdb.retention.time=200h' - '--web.enable-lifecycle' networks: - mcp-network restart: unless-stopped # Grafana Dashboard grafana: image: grafana/grafana:latest ports: - "3001:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=admin volumes: - grafana_data:/var/lib/grafana - ./grafana/dashboards:/etc/grafana/provisioning/dashboards - ./grafana/datasources:/etc/grafana/provisioning/datasources depends_on: - prometheus networks: - mcp-network restart: unless-stopped # Jaeger Tracing jaeger: image: jaegertracing/all-in-one:latest ports: - "16686:16686" - "14268:14268" environment: - COLLECTOR_OTLP_ENABLED=true networks: - mcp-network restart: unless-stopped # RabbitMQ Message Broker rabbitmq: image: rabbitmq:3-management-alpine ports: - "5672:5672" - "15672:15672" environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=password volumes: - rabbitmq_data:/var/lib/rabbitmq networks: - mcp-network restart: unless-stopped volumes: postgres_data: redis_data: prometheus_data: grafana_data: rabbitmq_data: networks: mcp-network: driver: bridge

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DemoDaygit/mcp-biz'

If you have feedback or need assistance with the MCP directory API, please join our Discord server