Stand up an internal-only OSRM container so /analyze can later use real
road/walking distances to POI instead of straight-line ST_Distance. Infra
only — the /analyze integration is a separate follow-up (A2/A3).
- docker-compose.prod.yml: osrm service (osrm/osrm-backend, --algorithm mld,
mem_limit 1.5g, default network, no public port — backend reaches it at
http://osrm:5000). TCP /dev/tcp healthcheck (image has no curl). backend does
NOT depend_on osrm, so a crash-loop before the graph is built won't block deploy.
- scripts/build_osrm.sh: idempotent MLD build/refresh (extract→partition→customize,
not contract). Defaults to Свердл-clip из Ural-FO via osmium (lighter RAM);
CLIP=0 zero-clip and EKB_TIGHT=1 / WALK=1 options documented. Monthly-refresh note.
- docs/osrm-routing.md: region/pbf decision, RAM table, VPS run-commands, verify curl.
- .gitignore data/osrm/* (don't commit ~1.5GB build output); .gitkeep holds the dir.
Refs #39