Still Maintained

Self-hosted Maps and Global Positioning System (GPS): what licence are you actually agreeing to

“Self-hosted” and “open source” are not the same promise, and the lists that recommend these projects rarely separate them. This page sorts 20 maps and global positioning system (gps) projects by the licence you are actually agreeing to, as read on 2026-08-20.

7 of 20 are permissive: run them, change them, keep your changes to yourself. 4 are AGPL, where serving a modified copy over a network obliges you to publish those changes, which is the clause that catches people who self-host for a team. 1 is not open source at all, carrying a proprietary or restricted-use licence. The remaining 8 are ordinary copyleft.

ProjectLicenceWhat that meansStarsMaintenanceLanguage
Open Source Routing Machine (OSRM)BSD-2-ClausePermissive, no strings7,992ActiveC++
GraphHopperApache-2.0Permissive, no strings6,638ActiveJava
TileServer GLBSD-2-ClausePermissive, no strings2,881ActiveJavaScript
TRIPMITPermissive, no strings1,850ActiveTypeScript
Geo2tzMITPermissive, no strings98ActiveGo
BicimonMITPermissive, no strings63DormantHTML
TraccarApache-2.0Permissive, no strings-Not measuredJava
NominatimGPL-2.0Copyleft, publish your changes4,423ActivePython
AdventureLogGPL-3.0Copyleft, publish your changes3,582ActiveSvelte
OpenStreetMapGPL-2.0Copyleft, publish your changes2,810ActiveRuby
OpenTripPlannerLGPL-3.0Copyleft, publish your changes2,718ActiveJava
OpenRouteServiceGPL-3.0Copyleft, publish your changes1,955ActiveJava
AirTrailGPL-3.0Copyleft, publish your changes1,488ActiveTypeScript
OwnTracks RecorderGPL-2.0Copyleft, publish your changes1,192ActiveC
NextGIS WebGPL-3.0Copyleft, publish your changes276ActivePython
DawarichAGPL-3.0AGPL, network copyleft10,137ActiveRuby
wandererAGPL-3.0AGPL, network copyleft3,836ActiveGo
ShelfAGPL-3.0AGPL, network copyleft2,982ActiveTypeScript
OnlocAGPL-3.0AGPL, network copyleft10ActiveTypeScript
MapTiler Server⊘ ProprietaryNot open source, restricted use-Not measuredUnknown

What the licence column means

The Maintenance column is a second, independent check: the age of the most recent commit on the default branch, read from the GitHub API on 2026-08-20. Active is within 180 days, Slowing is 180 to 365, Dormant is over a year, Archived means the maintainer marked the repo read-only, and Not measured means the project is hosted outside GitHub so the check does not apply.

Source data from awesome-selfhosted-data, used under CC BY-SA 3.0. Licence family grouping and maintenance status are computed by this site (from the upstream licence fields and the GitHub API) and are not part of the upstream dataset. Licence classification is a summary, not legal advice: check the project’s own LICENSE file before you rely on it. This page is published under the same licence.