gratis-gis
Sign in

gratis-gis

Open source GIS portal

An open-source, self-hosted GIS portal

GratisGIS is a portal for publishing datasets, web maps, forms, and dashboards on your own infrastructure. Built on open components (PostGIS, MapLibre, Keycloak). No license fees; your only cost is the hardware (or cloud bill) you choose to run it on.

  • Runs on your own hardware

    PostGIS-backed datasets, web maps, and forms. Bring data in from shapefiles, GeoJSON, GDB, or any OGR-supported format.

  • Field-ready PWA

    A data-collection app that installs to the home screen, works offline, and syncs when you're back online.

  • Works with the tools you already use

    OGC API Features, Tiles, Styles, and Records; CSW 2.0.2 catalog; Schema.org JSON-LD; WMS / WFS service references; plus Esri WebMap JSON export so portal maps open in ArcGIS Pro, ArcGIS Online, QGIS, and kepler.gl.

  • Built for self-hosting

    Docker compose, single-command deploy. Runs on a $20/month VPS or your existing infrastructure. No SaaS lock-in.

Operational features the portal ships with

  • Housekeeping that runs itself

    Stale items get flagged. Inactive users get auto-disabled. Expiring shares trigger warnings. Spatial extents get recomputed on a schedule. Admins get a dashboard, not a backlog.

  • Sync that doesn't lose your work

    Offline edits go to a per-edit queue with isolated retries. A bad row doesn't poison the rest. Schema changes notify every device that has cached the deployment so the field crew rebuilds before they next sync.

  • Email notifications you actually control

    Built-in templates for shares, expirations, schema changes, form submissions, and field captures. Org admins customize the copy through a guided editor with click-to-insert variables. Routed through one SMTP, not a sprawl of webhooks.

  • Sharing granularity that makes sense

    Share an item with a user, a group, or a folder. Folder shares cascade to every item in the folder. Per-share row scope ('all' vs 'own') and geographic clip (polygon) layer on top. View / download / edit / admin tiers, not a single 'shared' bit.

View on GitHubSend feedbackDiscussionsSend feedback goes to the maintainer's inbox; no account required. Discussions is the GitHub place for longer threads.

What's new

  • Run Python and notebooks on a schedule

    The portal can now run your Python for you, on its own, hourly or daily or monthly. Paste a script or upload a Jupyter notebook, give it a schedule, and a layer that should be refreshed every month actually is. Notebooks keep their charts and their explanations alongside the results, so a job somebody else set up is readable rather than a wall of print statements. Your administrator has to turn this on.

  • A much bigger Python toolkit

    The `gratisgis` Python package went from reading and writing features to most of what you can do in the browser: load a shapefile or GeoPackage into a layer, export to GeoParquet or CSV, attach and download photos, create and share layers, compute a field across a whole layer at once, and run buffers and other geoprocessing on the server so the data never has to come down to your machine. There is now proper documentation with worked examples under Help.

  • Reading a big layer from a script

    Pulling a large layer into a script used to fetch the whole thing at once, and past a certain size it quietly stopped short, so you could end up working with only part of your data without being told. Reads now come back a page at a time, and the Python package handles the paging for you. Editing the layer while a script reads it no longer risks skipping or repeating a feature.

  • Use your portal from Python

    You can now reach the portal from outside a browser. Create an API key under Profile, then read and write your layers from a notebook, a script, or a scheduled job on your own machine. A key acts as you, so it sees exactly what you see, and you can make it read-only in one click. There is a small Python package to go with it, so pulling a layer into your own analysis is a couple of lines.

  • Terrain at full detail, however big the area

    Elevation, hillshade, and height maps used to cap out on large areas, forcing a coarser resolution. The portal now builds them in pieces behind the scenes and joins them seamlessly, so a whole county renders at full detail. And 3D is now a proper on/off switch: flip to a flat view to check something, flip back, and your elevation setup is exactly as you left it.

Explore public content

Datasets, maps, and apps gratis-gis has shared publicly.

Nothing has been shared publicly yet. If you have a portal account, sign in to see content shared with you.

Sign in