Planisfy
Self hosting

Self-Host Data Sources

Provide PMTiles, fonts, Valhalla graph data, Pelias data, elevation DEM files, and basemap build inputs.

Self-Host Data Sources

Planisfy does not ship production map datasets. A clean self-host stack can boot before map data is ready, but service checks will be degraded until compatible data exists.

Runtime data paths

DataPath or provider
PMTilesinfra/docker/data/pmtiles for Martin, or published uploads through Console
Fontsinfra/docker/data/fonts for Martin glyph serving
Valhalla graph datainfra/docker/data/valhalla_data
Pelias import databundled fixture path for smoke tests or an external Pelias import workflow
Elevation DEM filesinfra/docker/data/elevation
Planisfy artifactsS3-compatible storage, R2, or local storage for small smoke tests

Demo PMTiles fixture

For local demos, use the setup helper with demo data:

scripts/self-host-setup.sh --demo-data

The setup script can use PLANISFY_FIXTURE_BASE_URL, DEMO_PMTILES_URL, DEMO_PMTILES_FALLBACK_URL, or DEMO_PMTILES_FALLBACK_PATH depending on how your environment retrieves fixtures.

Routing graph data

Valhalla needs graph data for the requested region before directions, isochrones, matching, matrix, or optimized trips can return useful results. You can provide graph data manually or build it through a root agent. Start with small no-elevation routing builds before adding DEM/elevation workflows.

Basemap builds

Basemap builds use Planetiler to turn OSM PBF sources into PMTiles artifacts. Martin is the serving runtime, not the build engine.

The normal flow is:

  1. Queue a basemap build on a root agent with basemap_build.
  2. The agent downloads OSM PBF data and runs Planetiler.
  3. The PMTiles artifact is uploaded to object storage.
  4. The API records a basemap artifact and published release.
  5. A serving worker deploys the release into Martin sources.
  6. An active release can be promoted to the primary basemap.

Overture basemap builds are modeled separately from OSM builds. They require a stable layer profile before they should be used for regional or planet production builds.

Troubleshooting missing data

  • Blank geometry usually means TileJSON, tile URLs, or source artifacts are missing.
  • Missing labels usually means glyph data or GLYPHS_INTERNAL_URL is wrong.
  • Routing 503 responses usually mean Valhalla is unavailable or lacks graph data.
  • Geocoding 503 GEOCODER_NOT_CONFIGURED means PELIAS_INTERNAL_URL is missing or disabled.
  • Elevation 404 NO_ELEVATION_DATA means DEM coverage is missing for the route.

On this page