# 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. It is open source and self-hosted, installable on Docker Hub, Kubernetes (Helm) and Unraid.

Canonical page: https://ourlocalhost.com/app/586/tileserver-gl

## Description

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, Helm.

## Health score

64/100 (Good), based on 5 of 5 factors.
- Maintained: 100 (last commit 19 days ago)
- Popular: 69 (2,907 GitHub stars)
- Easy to install: 45 (2 install platforms, install notes, Docker image)
- Light to run: 40 (4 GB minimum RAM, runs on ARM)
- Security check: 20 (1 serious finding, 8 minor, CI, tests, OpenSSF Scorecard 6.5/10)

## Security check

1 serious finding: Uses tar 6.2.1, which has a known critical vulnerability.
Automated checks on commit 2264416, 21 Oct 2026. Not an audit.

## Links

- Official website: https://tileserver.readthedocs.io/en/latest/
- GitHub: https://github.com/maptiler/tileserver-gl
- Docker Hub: https://hub.docker.com/r/maptiler/tileserver-gl
- Kubernetes (Helm): https://artifacthub.io/packages/helm/maptiler/maptiler-server
- Documentation: https://tileserver.readthedocs.io/en/latest/
- Unraid: https://ca.unraid.net/apps/tileserver-gl-14nynvk1y8dxos?q=TileServer-GL

## 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.

---
Source: Our Local Host (https://ourlocalhost.com/app/586/tileserver-gl), the self-hosted and open-source app directory.
