Deployed the Nominatim geolocation API of OpenStreetMaps specifically for the maps of Greece, in a cross-site setup with Caddy for high-availability through weighted round-robin reverse-proxying across heterogeneous servers in different locations.
The upstreams/backends are Docker containers running with podman on QEMU VMs using virt-manager and Proxmox VE, depending on the bare-metal infrastructure at each location. The public API endpoint’s domain uses HTTPS with LetsEncrypt’s SSL certificates automatically provisioned by Caddy.
Reverse-proxying is provided by Caddy, which also makes use of Nominatim’s /status
endpoint for periodic health checks of the backends. The round-robin mechanism uses weights that heavily favor “primary” backends with low latency and faster hardware over the “secondary” backends that are hosted on less powerful hardware with higher-latency connections.
The reverse-proxy VPS and the bare-metal servers at the different locations are interconnected through the Yggdrasil IPv6 mesh network. Some of the servers (bare-metal or not) are operated by RENT21, while the secondary ones used as fallback are operated by OVERBRING Labs.
This setup is utilized in the Managers web app, which is a sister app to the Breek.gr web app for property management. It enables key functionality of the Managers app while avoiding high costs that would be incurred by the use of the Google Maps API, which is already being used in production on the main web app.