| GeoLens is an internal catalog and map builder for spatial data. Drop in a vector or raster file, or connect a WFS, OGC API Features, or ArcGIS service, and the data lands in PostGIS, tiled and searchable. Build a map from those layers in the browser and share it by link or embed. I built this because the small GIS teams I worked with were paying ArcGIS Online or Mapbox to host data that never needed to leave their own server. Vendor lock-in is what GeoLens avoids. Live demo, no signup to browse: https://demo.getgeolens.com Stack: FastAPI, PostgreSQL 18 with PostGIS as the single source of truth. The job queue lives inside Postgres, so there is no broker to run. React with MapLibre on the front, Titiler for raster tiles, MinIO or S3 for files, Valkey for the tile cache. It serves OGC API Features and Records, STAC, and DCAT, so QGIS can read the catalog directly. Install and run with docker-compose:
Docs: https://docs.getgeolens.com Footprint: the public demo ran on a 2 vCPU / 8 GB VM for the past month. A small VPS is the target, not a Pi. AI involvement: Claude Code and Codex wrote a lot of the implementation and did review passes. The architecture and product calls are mine, and I read what ships. License: Apache 2.0 Repo: https://github.com/geolens-io/geolens Happy to answer anything about the stack or the choices [link] [留言] |
I built GeoLens: a self-hosted geospatial catalog and map builder (PostGIS, vector tiles, one docker compose)
Related
Everything I Didn't Build
For a few weeks I ran a proper multi-agent orchestrator. The concept was right, and I still think the people building those tools are pointed the correct way. But the bill was absurd, and it took me a while to work out why. It wasn't the coding. It was the talking about the coding. Every turn, age
Make Your Weekend Agent List Unknowns First
You sit down Friday with one messy GitHub issue. You want a usable plan before Monday morning. You paste the text into a chat agent. The reply looks polished, complete, and very sure. It adds Kafka, Redis, and a new auth service. The issue never named those systems. You do not have a brownfield bu
Grammar multi-driver: una API, quattro dialetti SQL
Il problema: SQL non e uno standard unico Sulla carta, SQL e uno standard. Nella pratica, ogni database parla il suo dialetto. MySQL usa i backtick per quotare gli identificatori, PostgreSQL le virgolette doppie, SQLite le accetta entrambe ma preferisce le virgolette. MySQL ha AUTO_INCREMENT, Post