TileServer-GL

TileServer-GL is a self-hosted map tile server that renders vector and raster maps with GL styles using server-side rendering by MapLibre GL Native.

  • Cloud
  • Development
  • Home Automation
  • Media Servers
  • Network Services
  • Tools & Utilities
TileServer-GL is a self-hosted map tile server that renders vector and raster maps with GL styles using server-side rendering by MapLibre GL Native. It serves tiles to MapLibre GL JS, Android and iOS, Leaflet, and OpenLayers clients, and to GIS software via WMTS, and can download vector tiles from OpenMapTiles. It suits developers and homelab users who want a private, self-managed map backend.

Platform availability

Available on 2 of 9 platforms

  • Unraid
  • TrueNAS (not listed)
  • Umbrel (not listed)
  • ZimaOS (not listed)
  • Proxmox (not listed)
  • Helm
  • Mac (not listed)
  • Windows (not listed)
  • Linux (not listed)

Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.

64/100 Good

Maintained
100last commit 19 days ago
Popular
692,907 GitHub stars
Easy to install
452 install platforms, install notes, Docker image
Light to run
404 GB minimum RAM, runs on ARM
Security check
201 serious finding, 8 minor, CI, tests, OpenSSF Scorecard 6.5/10

Availability: platform listings confirmed today, links checked 22 days ago

GitHub stars
2,907
Open issues
271
Last commit
2026-10-03
Latest release
v5.6.0
Activity
declining

Checked 14 days ago - source: GitHub (maptiler/tileserver-gl)

Resources & Compatibility

Minimum requirements: 4 GB RAM, 2 GB disk. ARM (e.g. Raspberry Pi) is supported.

Checked 23 days ago - source: Docker Hub image tags and published docs

First-install notes

  • Edit config.json before starting Set the file paths for your map data, styles, and fonts, then point the data section to your .mbtiles or .pmtiles files. Without correct paths, TileServer GL starts but cannot find the files it needs to draw the map. source
  • Use port 8080 and keep it reachable The example config serves the map on localhost:8080, so use that port (or change it deliberately) and open it in your firewall if you need to reach it from another device. If the port is blocked, your browser cannot load the map. source
  • Install Node and system libraries first Before running npm install, use Node.js 20, 22, or 24 and install the listed system libraries for your operating system. Missing pieces can stop TileServer GL from starting or cause tiles and fonts to fail to render. source
  • Node.js version Non-Docker installs require Node.js 20 or above; Node 24 is recommended. source

Fetched 6 days ago - each note links to its source

Alternatives

No alternatives collected yet.

Common questions

How do I point TileServer GL to my local map data, styles, and fonts?

Edit config.json before starting and set the file paths for map data, styles, and fonts. Point the data section to your .mbtiles or .pmtiles files, because incorrect paths can make it start without drawing the map.

Why can't another device load the map even though TileServer GL is running?

The example configuration serves on localhost:8080, so that port must be reachable. Open the port in the firewall if another device needs access, because a blocked port prevents the browser from loading the map.

How can I cache OSM raster tiles when using TileServer GL with Docker?

A TileServer-GL Stack Exchange example uses Mapproxy to cache OSM raster tiles generated from mbtiles after a Docker setup.

What can stop a source install of TileServer GL from starting or rendering correctly?

Make sure you use Node.js 20, 22, or 24 and install the listed system libraries before npm install. Missing pieces can stop startup or cause tiles and fonts to fail to render.

Answers sourced from gis.stackexchange.com, github.com, github.com

Community

Collected yesterday - public community threads