This is a public test instance. Resets to a curated golden state every day at 04:00 UTC.
Sign in with tester-admin / Admin123!, tester-contributor / Contributor123!, or tester-viewer / Viewer123!. Items, users, and edits you create vanish at the next reset. Feedback is welcome via the GitHub Issues link below.
Open Source Geospatial Portal
Open source 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.
PostGIS-backed datasets, web maps, and forms. Bring data in from shapefiles, GeoJSON, GDB, or any OGR-supported format.
A data-collection app that installs to the home screen, works offline, and syncs when you're back online.
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.
Docker compose, single-command deploy. Runs on a $20/month VPS or your existing infrastructure. No SaaS lock-in.
Built in, not bolted on
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.
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.
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.
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.
The four non-English catalogs are now seeded across every already-wired UI key, so the menu items, dialogs, and other strings the portal currently translates render in your chosen language. The seed is a machine-translated pass and the locale picker tags it "(MT)" so you know to expect rough edges; native speakers, please open a pull request fixing anything that sounds wrong (the picker now links to the contributor guide).
A language picker now lives in the user menu in the top-right. Five languages are available: English, Spanish, Portuguese (Brazil), French, and German. Your pick is remembered across sessions. The translation coverage is still small (the picker shows each language's completeness), so most of the UI still renders in English for now; the navigation menu and Print this map dialog are translated as a start, and contributions extend the rest as the catalogs fill in.
Two upgrades to live PostgreSQL + PostGIS layers. First, tables in any spatial reference system PostGIS knows about now render without needing to be in WGS84: the portal reprojects on the server with the GiST index still in play. Second, the layer filter you already use on any other map layer (column / operator / value rows) is now translated to safe parameterized SQL on the PostgreSQL side, so the database only sends back the rows that match. The raw SQL escape hatch is still there for power users.
Two new analysis steps. Clip cookie-cutters your features by another layer so only the parts inside survive (handy for "this dataset, but only inside this district"). Erase is the inverse, so you get only the parts outside (handy for "everything except this exclusion zone"). Attributes pass through unchanged on both. Add either from the toolbox in the derived-layer builder under "Compare with another layer."
The printed PDF now paints layers with the same colors and labels as the on-screen map: unique-value renderers, class-breaks, time- bins, and text labels all carry through, not just the simple fill / outline colors. The bound map's own basemap renders in the PDF too (raster, PMTiles, and Cloud-Optimized GeoTIFF), instead of vanilla OpenStreetMap. When the print Map element has a fixed scale set, the PDF honors that scale.
Datasets, maps, and apps GratisGIS has shared publicly.