Skip to content

docs: manual install guide for the map toolchain#461

Open
fank wants to merge 1 commit into
mainfrom
docs/map-tools-installation
Open

docs: manual install guide for the map toolchain#461
fank wants to merge 1 commit into
mainfrom
docs/map-tools-installation

Conversation

@fank
Copy link
Copy Markdown
Member

@fank fank commented May 31, 2026

What

Adds docs/map-tools-installation.md — a guide for installing the map toolchain (GDAL, tippecanoe, pmtiles) by hand.

We ship two Docker images so people don't have to install these tools: the slim latest/slim image and the full image with the toolchain bundled (the toolchain is heavy, which is why it's split out). But since we also publish the standalone binary, some users want to install the tools themselves on their own host. This doc is for them.

Contents

  • What gets installed and which binaries the pipeline looks for (required vs. recommended), plus the versions the full image pins (tippecanoe 2.79.0, go-pmtiles 1.30.0, GDAL 3.x).
  • Per-platform install: Debian/Ubuntu, Fedora/RHEL, Alpine (mirrors the Dockerfile), macOS (Homebrew), Windows (OSGeo4W/WSL/conda), and conda-forge cross-platform.
  • Per-tool reference for the gotchas:
    • pmtiles — release binaries/Homebrew name it pmtiles, but go install names it go-pmtiles; the pipeline only finds pmtiles.
    • tippecanoe — built from source (C++17), produces both tippecanoe and tile-join.
    • GDAL — the gdal_calc.py / gdal_fillnodata.py Python scripts live in a separate package on most distros (python3-gdal / gdal-python-tools / py3-gdal).
  • Verification via the maptool render preflight and the admin Map Manager page (GET /api/v1/maptool/tools), plus troubleshooting.

Linked from the README's Docker section.

Notes

Installation details were checked against each tool's current upstream docs/releases (release asset names, package names, and compiler requirements all verified). The tool list is derived from internal/maptool/tools.go; verification guidance matches the actual CLI/handler behavior (there is no standalone "check tools" subcommand).

Add docs/map-tools-installation.md covering how to install GDAL,
tippecanoe, and pmtiles by hand, for users running the standalone
binary instead of the full Docker image.

Per-platform instructions (Debian/Ubuntu, Fedora/RHEL, Alpine, macOS,
Windows, conda), a per-tool reference, and troubleshooting. Documents
the pmtiles go-install binary-name gotcha and the separate GDAL
Python-tools package needed for gdal_calc.py / gdal_fillnodata.py.
Tool status is surfaced via the maptool render preflight and the admin
Map Manager page, so the guide points there rather than a non-existent
subcommand.

Link the guide from the README Docker section.
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive guide for manually installing the map toolchain (GDAL, tippecanoe, and pmtiles) for standalone binary users, along with a reference in the README. The review feedback highlights a few necessary corrections: updating a non-existent Alpine version reference, adding instructions for ARM64 architecture downloads, and clarifying that tippecanoe is unavailable on Windows via conda-forge, meaning Windows users must use WSL2.

|---|---|
| tippecanoe | `2.79.0` |
| go-pmtiles | `1.30.0` |
| GDAL | whatever Alpine 3.23 ships (GDAL 3.x) |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Alpine 3.23 is not a released version yet (as of early 2025, the latest stable is 3.21). Please check if this is a typo for 3.20, 3.21, or another version used in your Dockerfile.

Comment on lines +104 to +107
# 3. pmtiles — download the release binary (already named `pmtiles`)
# Replace the URL with the latest from https://github.com/protomaps/go-pmtiles/releases
curl -L -o pmtiles.tar.gz \
https://github.com/protomaps/go-pmtiles/releases/download/v1.30.0/go-pmtiles_1.30.0_Linux_x86_64.tar.gz
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since OCAP2 supports both amd64 and arm64 architectures, it would be helpful to mention that ARM64 users should download the arm64 release of go-pmtiles instead of the hardcoded x86_64 one.

Suggested change
# 3. pmtiles — download the release binary (already named `pmtiles`)
# Replace the URL with the latest from https://github.com/protomaps/go-pmtiles/releases
curl -L -o pmtiles.tar.gz \
https://github.com/protomaps/go-pmtiles/releases/download/v1.30.0/go-pmtiles_1.30.0_Linux_x86_64.tar.gz
# 3. pmtiles — download the release binary (already named pmtiles)
# Replace the URL with the latest from https://github.com/protomaps/go-pmtiles/releases
# (For ARM64, use go-pmtiles_1.30.0_Linux_arm64.tar.gz instead)
curl -L -o pmtiles.tar.gz \
https://github.com/protomaps/go-pmtiles/releases/download/v1.30.0/go-pmtiles_1.30.0_Linux_x86_64.tar.gz

Comment on lines +168 to +170
2. **tippecanoe** — there is no official native Windows build. Use one of:
- **WSL2** (recommended): run OCAP and follow the Debian/Ubuntu steps inside WSL.
- **conda** (cross-platform package below).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Because tippecanoe relies heavily on POSIX system calls (such as fork), it cannot be compiled natively on Windows and is not available for Windows on conda-forge. Therefore, Windows users must run OCAP and the toolchain inside WSL2.

Suggested change
2. **tippecanoe** — there is no official native Windows build. Use one of:
- **WSL2** (recommended): run OCAP and follow the Debian/Ubuntu steps inside WSL.
- **conda** (cross-platform package below).
2. **tippecanoe** — there is no official native Windows build, and it is not available for Windows on conda-forge. You must use **WSL2** to run OCAP and the toolchain inside a Linux environment (follow the Debian/Ubuntu steps).

Comment on lines +177 to +179
conda-forge is GDAL's officially recommended cross-platform distribution and also
carries tippecanoe and pmtiles. This works identically on Linux, macOS, and Windows
and avoids compiling anything:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since tippecanoe is not available for Windows on conda-forge, the conda installation command will fail on Windows. It is best to clarify that this works on Linux and macOS.

Suggested change
conda-forge is GDAL's officially recommended cross-platform distribution and also
carries tippecanoe and pmtiles. This works identically on Linux, macOS, and Windows
and avoids compiling anything:
conda-forge is GDAL's officially recommended cross-platform distribution and also
carries tippecanoe and pmtiles. This works on Linux and macOS (note that tippecanoe
is not available for Windows via conda) and avoids compiling anything:

@ilbinek
Copy link
Copy Markdown

ilbinek commented Jun 1, 2026

standalone "check tools" subcommand would be cool, so I don't have to go to the UI to see, if I can see the render maps icon.
Similary it could return which tools are missing (with a link to this doc file?)

I would consider removing maxOS instructions - just makes it more cluttered. There is probably 0 people running ocap on macOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants