- GET /api/directions proxies OSRM (OSRM_URL env, default public demo
server) with validation, Leaflet-order geometry, 24h capped cache
- Map draws straight lines first, then upgrades ground legs to
road-following polylines with routed km (marked road) as directions
arrive; silent fallback to great-circle on failure; air legs unchanged
- README documents OSRM_URL
Docker creates ./data root-owned on the host, but the app runs as the unprivileged node user, causing SQLITE_CANTOPEN on first deploy. New entrypoint starts as root, chowns DATA_DIR, then drops privileges with setpriv. Compose keeps the SQLite database in ./data next to the compose file. Also trims scripts/ and playwright artifacts from the image.