Context
src/shared/geo/geo.ts currently returns null. Shipping a MaxMind GeoLite2 database would bloat the repo and require a license key, making the project harder to clone (ADR omitted; this is documented in code comments).
Goal
Make geolocation work in production without imposing it on local development.
Approach
- Add
MAXMIND_DB_PATH (optional) and MAXMIND_LICENSE_KEY env vars.
- If both set, lazy-load the
maxmind reader on startup and resolve country from IP.
- Otherwise, keep returning
null (current behavior).
- Document in the README how to fetch GeoLite2-Country.mmdb.
Acceptance criteria
Notes
The MaxMind reader is synchronous and CPU-light — safe to run in the click worker without extracting to a separate service.
Context
src/shared/geo/geo.tscurrently returnsnull. Shipping a MaxMind GeoLite2 database would bloat the repo and require a license key, making the project harder to clone (ADR omitted; this is documented in code comments).Goal
Make geolocation work in production without imposing it on local development.
Approach
MAXMIND_DB_PATH(optional) andMAXMIND_LICENSE_KEYenv vars.maxmindreader on startup and resolve country from IP.null(current behavior).Acceptance criteria
Notes
The MaxMind reader is synchronous and CPU-light — safe to run in the click worker without extracting to a separate service.