version: '3.8' services: # Registry service (includes nginx, SSL, FAISS, models) registry: build: context: . dockerfile: docker/Dockerfile.registry environment: - SECRET_KEY=${SECRET_KEY} - ADMIN_USER=${ADMIN_USER:-admin} - ADMIN_PASSWORD=${ADMIN_PASSWORD} - AUTH_SERVER_URL=${AUTH_SERVER_URL} - AUTH_SERVER_EXTERNAL_URL=${AUTH_SERVER_EXTERNAL_URL} - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID} - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET} - COGNITO_CLIENT_ID=${COGNITO_CLIENT_ID} - COGNITO_CLIENT_SECRET=${COGNITO_CLIENT_SECRET} - COGNITO_USER_POOL_ID=${COGNITO_USER_POOL_ID} - AWS_REGION=${AWS_REGION:-us-east-1} ports: - "80:80" - "443:443" - "7860:7860" volumes: - /opt/mcp-gateway/servers:/app/registry/servers - /opt/mcp-gateway/models:/app/registry/models - /home/ubuntu/ssl_data:/etc/ssl - /var/log/mcp-gateway:/app/logs - /opt/mcp-gateway/auth_server/scopes.yml:/app/auth_server/scopes.yml depends_on: - auth-server restart: unless-stopped # Auth service (separate and scalable) auth-server: build: context: . dockerfile: docker/Dockerfile.auth environment: - REGISTRY_URL=${REGISTRY_URL} - SECRET_KEY=${SECRET_KEY} - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID} - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET} - COGNITO_CLIENT_ID=${COGNITO_CLIENT_ID} - COGNITO_CLIENT_SECRET=${COGNITO_CLIENT_SECRET} - COGNITO_USER_POOL_ID=${COGNITO_USER_POOL_ID} - AWS_REGION=${AWS_REGION:-us-east-1} ports: - "8888:8888" volumes: - /var/log/mcp-gateway:/app/logs - /opt/mcp-gateway/auth_server/scopes.yml:/app/scopes.yml restart: unless-stopped # Current Time MCP Server currenttime-server: build: context: . dockerfile: docker/Dockerfile.mcp-server args: SERVER_PATH: servers/currenttime environment: - PORT=8000 ports: - "8000:8000" restart: unless-stopped # Financial Info MCP Server fininfo-server: build: context: . dockerfile: docker/Dockerfile.mcp-server args: SERVER_PATH: servers/fininfo environment: - PORT=8001 - SECRET_KEY=${SECRET_KEY} volumes: - /opt/mcp-gateway/secrets/fininfo/:/app/fininfo/ ports: - "8001:8001" restart: unless-stopped # MCP Gateway Server mcpgw-server: build: context: . dockerfile: docker/Dockerfile.mcp-server args: SERVER_PATH: servers/mcpgw environment: - PORT=8003 - REGISTRY_BASE_URL=http://registry:7860 - REGISTRY_USERNAME=${ADMIN_USER:-admin} - REGISTRY_PASSWORD=${ADMIN_PASSWORD} volumes: - /opt/mcp-gateway/servers:/app/registry/servers - /opt/mcp-gateway/models:/app/registry/models - /opt/mcp-gateway/auth_server/scopes.yml:/app/auth_server/scopes.yml ports: - "8003:8003" depends_on: - registry restart: unless-stopped # Real Server Fake Tools MCP Server realserverfaketools-server: build: context: . dockerfile: docker/Dockerfile.mcp-server args: SERVER_PATH: servers/realserverfaketools environment: - PORT=8002 ports: - "8002:8002" restart: unless-stopped volumes: ssl_data: