Platform Architecture Overview
This page shows how the three STAC GIS components — Core, Geo-AI, and Catalog — relate to each other and where the data flows.
The three components
┌─────────────────────────────────────────────────────────────────────────┐
│ STAC GIS PLATFORM │
│ │
│ ┌───────────────────────┐ STAC API ┌────────────────────────────┐ │
│ │ CATALOG │◄─────────────►│ CORE │ │
│ │ (stac-catalog tool) │ REST/OGC │ FastAPI + React + PostGIS │ │
│ │ gen + serve STAC │ │ STAC catalog, raster/ │ │
│ └───────────────────────┘ │ vector, object storage │ │
│ └─────────────┬──────────────┘ │
│ ┌───────────────────────────────────────────────┼──────────────┐ │
│ │ GEO-AI (stacgis-ai) │ │ │
│ │ ReAct AgentLoop · MCP tools · FastAPI routers│ │ │
│ │ stacgis-ai-react <AgentChat /> UI │ │ │
│ └───────────────────────────────────────────────┼──────────────┘ │
│ ▼ │
│ Ollama (local LLM) │
└─────────────────────────────────────────────────────────────────────────┘
| Component | Role in the platform |
|---|---|
| Core | Source of truth. Ingests, stores, and serves STAC collections/items, raster and vector data, plus the full user-facing application (dashboards, admin, AI chat). |
| Geo-AI | The AI engine. A reusable ReAct agent harness with MCP tooling and a React chat UI. Core embeds it for its AI assistant; the same packages power standalone geo-queries in other apps. |
| Catalog | The data pipeline. A Python toolkit (stac-catalog) that generates STAC Collections & Items from CSV/Google Sheets, loads them into pgSTAC, and serves them via STAC FastAPI, TiTiler, and STAC Browser. |
End-to-end data flow
In plain language
- Store — uploads and STAC ingestion land in Core: metadata in PostgreSQL (with PostGIS geometries and pgvector embeddings), files in MinIO, expensive processing on Celery workers.
- Browse — the Catalog talks to Core's STAC API (standard STAC + OGC API Features), renders items on a map, and previews raster assets.
- Ask — the Geo-AI agent loop receives the user's question, selects relevant MCP tools (collections, statistics, raster/vector operations), executes them against Core's data, and streams its reasoning back to the chat UI.
Running the platform together
Each component is independent, but the typical full-stack setup is:
- Core — the full stack via its root
docker-compose.yml(web gateway, API, worker, Postgres, Redis, MinIO). See the Core installation guide. - Ollama — a local LLM server the agent (and Core) can reach. See the Geo-AI quick start.
- Catalog — run
stac-catalog syncto generate STAC Collections and Items from your CSV/Google Sheets and load them into pgSTAC, then browse them through the bundled stack (STAC FastAPI + TiTiler + STAC Browser). See Catalog — Getting started.
💡 Tip: if you only need one piece — e.g. a chat agent for your own FastAPI app (
stacgis-ai+stacgis-ai-react) or a self-hosted STAC catalog generator for your rasters (Catalog) — each component's docs are fully self-contained.