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
| Data | Path or provider |
|---|---|
| PMTiles | infra/docker/data/pmtiles for Martin, or published uploads through Console |
| Fonts | infra/docker/data/fonts for Martin glyph serving |
| Valhalla graph data | infra/docker/data/valhalla_data |
| Pelias import data | bundled fixture path for smoke tests or an external Pelias import workflow |
| Elevation DEM files | infra/docker/data/elevation |
| Planisfy artifacts | S3-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-dataThe 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:
- Queue a basemap build on a root agent with
basemap_build. - The agent downloads OSM PBF data and runs Planetiler.
- The PMTiles artifact is uploaded to object storage.
- The API records a basemap artifact and published release.
- A serving worker deploys the release into Martin sources.
- 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_URLis wrong. - Routing
503responses usually mean Valhalla is unavailable or lacks graph data. - Geocoding
503 GEOCODER_NOT_CONFIGUREDmeansPELIAS_INTERNAL_URLis missing or disabled. - Elevation
404 NO_ELEVATION_DATAmeans DEM coverage is missing for the route.