Skip to main content
Glama
docker-compose.yml7.5 kB
version: "3.8" # GeoSight MCP Server - Docker Compose Configuration # Usage: # Development: docker-compose up -d # Production: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d services: # =========================================================================== # Main MCP Server # =========================================================================== geosight: build: context: . target: development container_name: geosight-mcp ports: - "8000:8000" volumes: - ./src:/app/src:ro - ./config:/app/config:ro - geosight-data:/app/data - geosight-models:/app/models/weights environment: - ENVIRONMENT=development - LOG_LEVEL=DEBUG - SERVER_MODE=http - SERVER_HOST=0.0.0.0 - SERVER_PORT=8000 - REDIS_URL=redis://redis:6379/0 - DATABASE_URL=postgresql+asyncpg://postgres:geosight@postgres:5432/geosight - S3_ENDPOINT_URL=http://minio:9000 - S3_ACCESS_KEY=minioadmin - S3_SECRET_KEY=minioadmin - S3_BUCKET_NAME=geosight-data - CELERY_BROKER_URL=redis://redis:6379/1 - CELERY_RESULT_BACKEND=redis://redis:6379/2 depends_on: - redis - postgres - minio networks: - geosight-network restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s # =========================================================================== # Celery Worker for Background Tasks # =========================================================================== worker: build: context: . target: development container_name: geosight-worker command: celery -A geosight.tasks worker --loglevel=info --concurrency=2 volumes: - ./src:/app/src:ro - geosight-data:/app/data - geosight-models:/app/models/weights environment: - ENVIRONMENT=development - LOG_LEVEL=INFO - REDIS_URL=redis://redis:6379/0 - DATABASE_URL=postgresql+asyncpg://postgres:geosight@postgres:5432/geosight - S3_ENDPOINT_URL=http://minio:9000 - S3_ACCESS_KEY=minioadmin - S3_SECRET_KEY=minioadmin - CELERY_BROKER_URL=redis://redis:6379/1 - CELERY_RESULT_BACKEND=redis://redis:6379/2 depends_on: - redis - postgres networks: - geosight-network restart: unless-stopped # =========================================================================== # Redis - Caching and Task Queue # =========================================================================== redis: image: redis:7-alpine container_name: geosight-redis ports: - "6379:6379" volumes: - redis-data:/data command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru networks: - geosight-network restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 # =========================================================================== # PostgreSQL + PostGIS - Database # =========================================================================== postgres: image: postgis/postgis:15-3.3-alpine container_name: geosight-postgres ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data - ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql:ro environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=geosight - POSTGRES_DB=geosight networks: - geosight-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 # =========================================================================== # MinIO - S3-Compatible Object Storage # =========================================================================== minio: image: minio/minio:latest container_name: geosight-minio ports: - "9000:9000" - "9001:9001" volumes: - minio-data:/data environment: - MINIO_ROOT_USER=minioadmin - MINIO_ROOT_PASSWORD=minioadmin command: server /data --console-address ":9001" networks: - geosight-network restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 10s retries: 3 # =========================================================================== # MinIO Setup - Creates initial bucket # =========================================================================== minio-setup: image: minio/mc:latest container_name: geosight-minio-setup depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set minio http://minio:9000 minioadmin minioadmin; mc mb --ignore-existing minio/geosight-data; mc anonymous set download minio/geosight-data; exit 0; " networks: - geosight-network # =========================================================================== # Streamlit Dashboard # =========================================================================== dashboard: build: context: ./dashboard dockerfile: Dockerfile container_name: geosight-dashboard ports: - "8501:8501" volumes: - ./dashboard:/app:ro environment: - GEOSIGHT_API_URL=http://geosight:8000 depends_on: - geosight networks: - geosight-network restart: unless-stopped # =========================================================================== # Prometheus - Metrics Collection # =========================================================================== prometheus: image: prom/prometheus:latest container_name: geosight-prometheus ports: - "9090:9090" volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus-data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.enable-lifecycle' networks: - geosight-network restart: unless-stopped # =========================================================================== # Grafana - Monitoring Dashboard # =========================================================================== grafana: image: grafana/grafana:latest container_name: geosight-grafana ports: - "3000:3000" volumes: - grafana-data:/var/lib/grafana - ./config/grafana/provisioning:/etc/grafana/provisioning:ro environment: - GF_SECURITY_ADMIN_PASSWORD=admin - GF_USERS_ALLOW_SIGN_UP=false depends_on: - prometheus networks: - geosight-network restart: unless-stopped # =========================================================================== # Volumes # =========================================================================== volumes: redis-data: postgres-data: minio-data: geosight-data: geosight-models: prometheus-data: grafana-data: # =========================================================================== # Networks # =========================================================================== networks: geosight-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/armaasinghn/geosight-mcp'

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