Blog post cover image

The idea behind osm-seed traces back nearly a decade. In a talk at the State of the Map 2015, Sajjad Anwar posed a question: what if OpenStreetMap could be easily self-hosted for projects that need the tooling, but not the full global dataset?

For us, the first use case was internal. We needed a way to label and annotate data in a controlled environment. With osm-seed, they could spin up a private OpenStreetMap instance, make edits, export a PBF, and tear it down when the work was done.

osm-seed itself started as one of my first projects at Development Seed. What began as a focused internal tool expanded as new use cases emerged.

What osm-seed actually is (and what it isn’t)

osm-seed packages the core pieces of the OpenStreetMap stack into a single, deployable setup.

It includes the OpenStreetMap Rails Port, Overpass, OSMCha, Nominatim, a tile server, the iD editor, and supporting services — typically six or seven components working together. Everything is containerized and configured to run as a cohesive system.

Instead of starting from a blank map, you can seed an instance using a bounding box from existing OpenStreetMap data. From there, edits stay within your instance.

osm-seed is not a federation layer. It doesn’t try to synchronize changes back to upstream OpenStreetMap. For many use cases, that’s what makes it useful.

OpenHistoricalMap is an example of osm-seed in action. Its data model and goals are different from OpenStreetMap, so merging changes upstream was never the objective.

osm seed logo

osm-seed started in 2015 as a way to label and annotate data in a controlled environment.

Where it’s been used

Over time, osm-seed moved beyond internal tooling and into production use.

OpenHistoricalMap helped push it there, running a full public-facing instance with real traffic.

Palestine Open Maps uses osm-seed to support community mapping efforts with infrastructure they can control and operate independently.

screenshot of Palestine Open Maps

Palestine Open Maps is one of the projects that leverages osm-seed for community mapping.

Local government is another fit. Kendall County, Illinois runs Maramech, a county mapping platform built on osm-seed. Joshua Carlson from the county GIS team puts it:

"Kendall County GIS already uses OpenStreetMap and OpenHistoricalMap for everything it can, so it makes sense that we'd want to work with our land records in the same way. With osm-seed, we're able to securely manage current and historic parcels, lots, subdivisions, and right-of-ways, and our data can seamlessly feed into the OSM ecosystem of tools."

You can see it in action on a parcel with the data layer turned on.

Why move to its own org

The immediate trigger was practical. GeoCompas needed permissions to push updates to Docker Hub, and routing that through Development Seed added unnecessary overhead. More importantly, osm-seed has outgrown its original home. It has active users, ongoing maintenance, and a clear direction. Ruben Mendoza at GeoCompas is the primary maintainer, and the move to a dedicated GitHub organization aligns with how the project is actually being run.

What's new: release 2.0.0

The move comes with the first stable release under the new org. osm-seed 2.0.0 cleans up the chart after years of OHM-specific defaults: resources use consistent names, the chart moves to Helm 3 and Kubernetes 1.25+, values work out of the box with helm template, and every component image is published on GitHub Container Registry with the same version tag.

Where to find it

osm-seed now lives at github.com/osm-seed, where the code, documentation, and Docker images are maintained.

If you’re running an instance, considering one, or trying to understand whether it fits your use case, that’s the place to start.

Ruben is maintaining the project through GeoCompas, and is the right person to reach out to with questions, issues, or ideas for improvement.

What we're doing.

Latest