shortbread
Recipe card from the charly-versa plugin (Images — the deployable catalog).
shortbread — Shortbread vector-tile schema generation
Section titled “shortbread — Shortbread vector-tile schema generation”Layer properties
Section titled “Layer properties”| Property | Value |
|---|---|
| Dependencies | supervisord (transitive; no service of its own) |
| Distros | arch + fedora (tilemaker is source-built) |
| Build deps | git, make, gcc/gcc-c++, lua/lua-devel, sqlite/sqlite-devel, boost+boost-libs/boost-devel, protobuf/protobuf-devel, shapelib/shapelib-devel, zlib-devel (Fedora only — Arch uses zlib-ng-compat) |
| Output dir | /workspace/tiles/shortbread/ (versatiles serve watches this) |
| Tools installed | /usr/local/bin/tilemaker, /opt/shortbread-tilemaker/{config.json,process.lua,...} |
Why source-built
Section titled “Why source-built”systemed/tilemaker ships no Arch/Fedora package and no GitHub release
binaries. Build from source mirrors the existing tippecanoe pattern in
/charly-versa:osm-tools-layer: shallow clone → make -j$(nproc) →
make install PREFIX=/usr/local. Build duration: ~2-3 minutes on a
warm package cache; binary lands at /usr/local/bin/tilemaker.
Shortbread config bundle
Section titled “Shortbread config bundle”shortbread-tiles/shortbread-tilemaker ships:
process.lua— per-feature Lua classifier (decides which OSM tags go into which vector-tile layer at which zoom)config.json— layer/zoom schema definition consumed by tilemaker via--configget-shapefiles.sh,build_test_dataset.sh— helper scripts (not used by the in-pod DAG; bundled for operator reference)
The bundle is cloned to /opt/shortbread-tilemaker/ at image-build
time with .git/ removed (image-size reduction).
DAG invocation
Section titled “DAG invocation”@taskdef tilemaker_convert() -> str: pbf = "/workspace/tiles/work/monaco.osm.pbf" out = "/workspace/tiles/shortbread/monaco-shortbread.pmtiles" subprocess.run([ "tilemaker", "--input", pbf, "--output", out, "--config", "/opt/shortbread-tilemaker/config.json", "--process", "/opt/shortbread-tilemaker/process.lua", ], check=True) return outTilemaker v3.0+ detects the .pmtiles extension on --output and
produces a PMTiles archive directly (no .mbtiles intermediate).
Monaco-scale runs complete in ~30 seconds.
Check probes
Section titled “Check probes”Build-scope:
tilemaker-installed—tilemaker --versionexit 0shortbread-process-lua—/opt/shortbread-tilemaker/process.luaexistsshortbread-config-json—/opt/shortbread-tilemaker/config.jsonexists
Deploy-scope:
shortbread-tiles-dir-runtime—/workspace/tiles/shortbread/exists
Cross-references
Section titled “Cross-references”/charly-versa:versa— image composing this layer/charly-versa:versatiles— the tile-server service that auto-discovers/workspace/tiles/shortbread/*.pmtilesfiles/charly-versa:versatiles-style— MapLibre style generator targeting the Shortbread schema (the notebook’s shortbread cell renders the pipeline output usingcolorful())/charly-versa:notebook-osm— DAG cell 2 self-authors thenotebook_osm_shortbread_pipelinethat drives this layer/charly-versa:osm-tools-layer— sibling tippecanoe pipeline + martin tile server (parallel infrastructure on port 23000)