Hysen Labs
Open-source project
makina-maps/makina-maps avatar
makina-maps

makina-maps

Full Stack to Build, Serve and Update your own Vector and Raster Tiles from OpenStreetMap Data.

100 stars18 forksJavaScriptBSD-3-Clause
01
DEEP OPEN-SOURCE ANALYSIS

makina-maps: your own tile stack from OpenStreetMap

Makina Maps is a full stack for building, serving, and updating vector and raster tiles from OpenStreetMap, rendering on request with OpenMapTiles, TileServer GL, and nginx caching.

02
DEEP OPEN-SOURCE ANALYSIS

Rendering on demand

Makina Maps is a full stack for building, serving, and updating your own vector and raster tiles from OpenStreetMap data. The key design choice is rendering on request. There is no huge MBTiles archive to pre generate, which keeps both setup and updates fast.

03
DEEP OPEN-SOURCE ANALYSIS

The initial import

The initial load downloads OpenStreetMap data and sets up configuration for a chosen area, using Geofabrik's area names stored in the data directory. The prepare and extract scripts can be replayed for the same area or a different one, so rebuilding the data for another region is a rerun rather than a rewrite.

04
DEEP OPEN-SOURCE ANALYSIS

Serving and updating tiles

Vector tiles are built on request from the OpenMapTiles database and schema, served as Mapbox GL styles with sprites and fonts embedded, and TileServer GL renders a raster version of the same style. Updates flow through Imposm, which marks expired tiles that a watcher script in the nginx container then clears from the cache. A reset script can bring the tile server back to a clean state without touching the database.

05
DEEP OPEN-SOURCE ANALYSIS

Where vector tiles come from

Vector tile sources are flexible. They can be generated on the fly from the OpenMapTiles database, pulled from another external source, or read from local MBTiles files. One caveat stands out: the TileJSON URLs from the vector producer point at internal docker compose hosts, so they must be redefined as public URLs for the outside world.

06
DEEP OPEN-SOURCE ANALYSIS

Measured performance

The README publishes numbers for an 8 CPU setup. Import times range from Andorra at about a minute to Europe at eleven and a half hours, with Postgres sizes climbing from 167 MB to 206 GB. Tile request delays land around 49 to 60 ms at different zoom levels over mixed Europe, jump to 250 ms for urban Paris at zoom 14, and drop to 5 ms from cache. Metrics logs sit off by default and turn on with a benchmark compose file.

07
DEEP OPEN-SOURCE ANALYSIS

Editorial conclusion

Makina Maps renders vector and raster tiles on request from OpenStreetMap data, using OpenMapTiles, TileServer GL, and an nginx cache, with documented import sizes and query delays for an 8 CPU setup.

08
DEEP OPEN-SOURCE ANALYSIS

Official sources

09
Community notes

Community notes