Skip to main content

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) │
└─────────────────────────────────────────────────────────────────────────┘
ComponentRole in the platform
CoreSource of truth. Ingests, stores, and serves STAC collections/items, raster and vector data, plus the full user-facing application (dashboards, admin, AI chat).
Geo-AIThe 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.
CatalogThe 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

  1. 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.
  2. Browse — the Catalog talks to Core's STAC API (standard STAC + OGC API Features), renders items on a map, and previews raster assets.
  3. 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:

  1. Core — the full stack via its root docker-compose.yml (web gateway, API, worker, Postgres, Redis, MinIO). See the Core installation guide.
  2. Ollama — a local LLM server the agent (and Core) can reach. See the Geo-AI quick start.
  3. Catalog — run stac-catalog sync to 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.