finds.dev← search

// the find

consbio/mbtileserver

★ 786 · Go · ISC · updated May 2025

Basic Go server for mbtiles

mbtileserver is a Go server that turns mbtiles files into a tile HTTP API. You point it at a directory of .mbtiles files and it exposes XYZ tile endpoints, TileJSON, a map preview, and an optional ArcGIS stub. It's aimed at small teams or solo developers who generate tiles with tippecanoe or TileMill and need a dead-simple way to host them without standing up a full GIS stack.

The operational model is genuinely simple: drop files in a directory, start the process. No config files, no database, no service registry. The reload options (HUP signal or filesystem watcher) cover the 'update tiles without downtime' case without requiring a process manager. HMAC request signing with 15-minute expiry is a decent auth option for cases where you want to issue short-lived tokens to clients without a full auth layer. Ships as a single statically-linked binary with assets embedded via go:embed, which makes Docker and bare-metal deploys equally trivial.

The filesystem watcher comes with a wall of WARNINGs — don't remove directories, don't create subdirectories at runtime, don't write tiles directly into watched directories. That's a fragile contract for production use where tile generation pipelines typically write in-place. The HMAC auth uses SHA1, which is not broken for HMAC but will raise eyebrows in a security review and sets a bad precedent. There's no per-tileset access control — it's all-or-nothing with a single secret key, so you can't serve public and private tilesets from the same instance. The ArcGIS API is explicitly described as a stub and unsuitable for anything beyond a narrow online platform; anyone expecting real ArcGIS compatibility will be disappointed.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →