MerchantryTidbits

deploy-infra / app

sms (simple mbtiles server)

Capability: sms (simple mbtiles server)

Use it when

  • Your app depends on a hosted vector tile provider and you want to self-host planet-wide OpenStreetMap tiles with styles, fonts, and sprites instead
  • You need an offline or private map stack: serve mbtiles to MapLibre GL, search POIs by category and radius, and compute short walking or cycling routes without any external routing engine

What it solves

Not the fit when

  • Hosts without roughly 100 GB free storage, plus about 315 GB if contour data is used.
  • Driving routes, turn restrictions, long-distance routing beyond the documented small bounding-box limits, or forward geocoding.
  • Production use of the maintainer-hosted prebuilt MBTiles without independently verifying provenance, freshness, integrity, and OpenStreetMap attribution obligations; generate or source your own trusted MBTiles when required.
  • Assuming every bundled component is MIT; README says vendor components use additional licenses.
  • Exposing the service directly to the internet without a reverse proxy, TLS, rate limits, and operational monitoring.
  • driving navigation with turn restrictions
  • raster tile rendering
  • forward geocoding search
  • generating the mbtiles file itself

Install

wget the provided planet.mbtiles into ./osm/, then: podman run -ti --rm -p 9000:9000 --name sms -v "$(pwd)/osm/:/data/" registry.gitlab.com/markuman/sms:latest (docker also works; ~100 GB storage required)

Invoke

Open http://localhost:9000 for the map UI; serve tiles at /v1/tiles/{id}@{version}/{z}/{x}/{y}.mvt, MapLibre styles at /v1/styles/.../style.json, POI search at /v1/poi/..., and foot/bike routing at /v1/route/...

Alternatives

No reviewed alternatives recorded yet.