rtw.run graphhopper

0 1 pulls 5 Updated 2h
linux/amd64 linux/arm64 Multi-arch
docker pull atcr.io/rtw.run/graphhopper:latest
Image Size Layers
470.8 MB 99
Pushed 2h
Vulnerabilities
Loading...
Pulls
1 total
Last pull 2h

graphhopper

Routing server for rtw.run, an adventure motorcycle trip planning app.

What is GraphHopper?

GraphHopper is a fast, memory-efficient, open-source routing engine written in Java. It calculates routes for a variety of vehicles (car, bike, foot, motorcycle, …) from OpenStreetMap data and serves them over a web API. See https://www.graphhopper.com/ for the project homepage and documentation.

This image packages the GraphHopper routing server, configured for rtw.run’s routing profiles.

Running the container

Multiarch image (amd64 + arm64): atcr.io/rtw.run/graphhopper:latest

The image contains binaries + entrypoint only. GraphHopper’s preprocessed routing data (the graph-cache) lives on a volume: either download it at container start by setting GRAPH_CACHE_URL, or pre-populate the volume from a graphhopper-builder run on the same host.

mkdir -p /srv/rtw/graphhopper

podman run -d --name graphhopper --userns=keep-id \
  -p 127.0.0.1:8989:8989 \
  -v /srv/rtw/graphhopper:/data/graphhopper \
  -v /etc/rclone/rclone.conf:/config/rclone/rclone.conf:ro \
  -e XDG_CONFIG_HOME=/config \
  -e GRAPH_CACHE_URL=r2://rtw-data/graphhopper/graph-cache.tar.zst \
  atcr.io/rtw.run/graphhopper:latest
Var Default Meaning
GRAPH_CACHE_URL unset r2://bucket/path/graph-cache.tar.zst. If set, the graph is re-downloaded whenever the remote .md5 sidecar changes. If unset, /data/graphhopper/graph-cache must already exist.
JAVA_OPTS -Xms16g -Xmx48g Server heap. MMAP_STORE (default) keeps the graph in page cache; raise heap only with RAM_STORE.

r2:// URLs are handled by rclone, so the container expects an rclone remote named r2 (mounted config or RCLONE_CONFIG_R2_* env vars).

Health check: curl http://localhost:8989/health