Skip to main content

Open Source · Self-Hosted · OGC API

The self-hosted catalog and map builder for your geospatial data

GeoLens is an open-source, self-hosted catalog and map builder for geospatial data. Search and preview datasets, compose multi-layer maps with 3D terrain, and serve them over open OGC APIs, all on infrastructure you control, with no telemetry.

Get Started Try the live demo
GeoLens map builder rendering a 3D view of the Manhattan skyline: buildings extruded and colored by real roof height over a dark basemap, with the layer panel

Built on PostGIS · MapLibre · Titiler · FastAPI Open standards OGC API · STAC · DCAT

Search and discover

Find any dataset in seconds

Search across your entire GeoLens catalog by name and description. When an embedding provider is configured, you can also search by semantic meaning, so related datasets surface even when the exact words differ. Filter by geometry type (vector, raster, or table) and preview datasets on a map before you download.

Learn more

Create and share maps

Compose multi-layer maps in minutes

Combine vector and raster datasets with point-and-click layer controls: reorder layers, set color ramps and filters, draw and edit features, switch basemaps, and tilt into 3D terrain. Then share a live map with a signed link or embed code, without writing SQL or leaving the browser.

Learn more

Self-hosted install

One command. Your data, your infrastructure.

You do not need a cloud account. The full platform is open source under Apache 2.0: the entire catalog, map builder, and APIs, free to self-host. Run on a laptop, a single VM, or your own servers with Docker Compose. A community-maintained Helm chart is available for Kubernetes.

How it works

One stack. One docker compose up.

Every GeoLens deployment is the same handful of services, orchestrated by a single compose file, with no external search engine and no separate tile server to run.

  1. 1

    Frontend

    React + MapLibre UI: catalog, map builder, and 3D.

  2. 2

    API

    FastAPI: REST, OGC API, and tile endpoints.

  3. 3

    Catalog & search

    PostgreSQL + PostGIS + pgvector: spatial and semantic in one database.

  4. 4

    Raster tiles

    Titiler: Cloud-Optimized GeoTIFF tiling.

What GeoLens does

Everything your team needs to work with geospatial data

Search and semantic discovery

Find any dataset with full-text search, plus optional vector semantic ranking when you configure an embedding provider. Filter by geometry type, CRS, or date. You do not need SQL.

Map builder & sharing

Compose multi-layer maps in minutes, then share them with a signed link or embed a live, interactive map in any page.

3D terrain

Bind a DEM and tilt into 3D: hillshade, terrain exaggeration, and your choice of basemap in the built-in map builder, powered by MapLibre. You do not need desktop GIS.

Raster and COG tiles

Ingest Cloud-Optimized GeoTIFFs and large rasters, build VRT mosaics, and serve tiles via Titiler with automatic colormaps, without running a separate tile server.

AI assist (optional)

Bring an OpenAI-compatible endpoint or Anthropic key to ask about your catalog in plain language, create maps, and draft dataset descriptions. The feature is optional and off by default; GeoLens runs fully without it.

OGC API

Serve your datasets over OGC API - Features and Records, with CQL2 filtering and direct tile URLs for map clients. Compatible with QGIS, ArcGIS, and OGC clients.

Data ingestion

Drop in shapefiles, GeoTIFFs, GeoJSON, GeoPackages, COGs, and CSV. GeoLens validates, detects CRS, and indexes for you.

Self-hosted

Docker Compose on a laptop, a VM, or your own servers is the supported path. A community-maintained Helm chart is available for Kubernetes. Your infrastructure, your data; no cloud account required.

RBAC & access control

Admin, editor, and viewer roles with per-dataset permissions. OAuth (Google, Microsoft, OIDC) and JWT sessions. Audit log included.

Why GeoLens

A modern alternative to heavyweight GIS stacks

One command, not a server farm

A single docker compose stack stands up the catalog, API, tiles, and UI, not a multi-image orchestration project.

A modern UI, by default

A React + MapLibre interface with a real map builder, not an afterthought UI on top of a data store.

Standards included, never paywalled

OGC API, STAC, and DCAT ship in the box, so your data stays portable and your existing clients keep working.

Your infrastructure, your data

Self-host on a laptop, a VM, or Kubernetes, even fully offline or air-gapped. You do not need a cloud account, and GeoLens does not collect telemetry. Outbound traffic comes only from the integrations you enable: AI, SSO, SMTP, basemaps, or remote data. Plus an audit log of who did what.

Works with the tools you already run

Point QGIS or ArcGIS Pro straight at your OGC API URL, with no format conversion and no plugin to install. GeoLens fits alongside your existing stack instead of replacing it.

Standard formats, clean exit

Your data stays in standard PostGIS and open formats, reachable and exportable over OGC API, STAC, and DCAT. Leaving does not require a migration project.

Who it's for

Built for teams that work with spatial data

GIS analysts & teams

Replace the tangle of shapefiles on a shared drive with one searchable catalog your whole team can preview, style, and share.

Data engineers

Serve datasets as OGC API Features, tiles, and STAC, straight into QGIS, ArcGIS, or your own clients, and script it all with the CLI.

Government & utilities

Keep sensitive data on your own network, on-prem or air-gapped, with no telemetry; point basemaps at internal tiles for zero third-party egress. Role-based access, per-dataset scoping, and a full audit log are built in.

Civic tech & research

Publish open data catalogs on a permissive Apache 2.0 stack, with no licensing cost and no vendor lock-in.

Install GeoLens with one command

Run the public installer, log in, and upload your first dataset. The Quickstart also covers the source checkout path.

Read the Quickstart Integrate via the API

Or script it: automate GeoLens from the command line or your own code.