/headway

Self-hostable maps stack, powered by OpenStreetMap.

Primary LanguageVueApache License 2.0Apache-2.0

Headway

GitHub Actions status badge License badge GitHub last commit badge GitHub commit activity badge

World map image

Headway is a maps stack in a box that makes it easy to take your location data into your own hands. With just a few commands you can bring up your own fully functional maps server. This includes a frontend, basemap, geocoder and routing engine. Over 200 different cities are currently supported.

See BUILD.md for more information about the build process.

Status

Headway is currently capable of showing a map, searching for points of interest and addresses within an OpenStreetMap extract and providing directions between any two places within that extract. Supported modes include driving, cycling and walking. Transit directions are a work-in-progress.

System Requirements

Headway has been confirmed working on amd64 machines running Linux and macOS. The machine used for generation of the data files needs to have at least 8GB of memory, potentially more for larger areas. The requirements for running an instance of the stack are lower though. Expect to need around 4GB for a medium sized metro area. The requirements can be reduced further by the omission of transit routing. We also recommend at least 50GB of free disk space, even if the OpenStreetMap extract for the area of interest is much smaller than that. Plan ahead to avoid disk pressure.

For planet builds, expect to need 64GB of RAM. Hosting a planet-scale instance requires about 64GB of RAM as well. Earthly makes many needless copies of data in its cache, so unless you have ~10TB of NVMe storage you will need to perform planet builds on a system with either VDO enabled or on a filesystem that supports deduplication natively like ZFS. With deduplication enabled the disk space requirement for a full-planet build is fairly low, expect to need around 1TB of fast storage. You'll also need to disable BuildKit parallelism in earthly and set cache_size_mb to 10000000 to trick it into using more disk space than you technically have available. I've observed deduplication ratios as high as 15x, with an average of 8-10x for full-planet work.

License

Headway is available freely under the terms of the Apache License, verion 2.0. Please consider opening a PR for any enhancements or bugfixes!