Fast & lightweight HTTP gateway that serves IP geolocation database as a JSON REST API.
1.4K
Lightweight HTTP gateway that geolocates IP addresses through a JSON REST API.
Send a POST /api/v1/geoip request, get geographic data back as structured JSON. Supports single and batch IP lookups (IPv4 and IPv6), with localized country and continent names in 7 languages. The database is downloaded from MaxMind on startup and refreshed daily — or synced from another http2geoip instance in peer mode.
The binary embeds a web UI (dark/light mode, 15 languages) and an OpenAPI 3.1 spec — no external files, no runtime dependencies beyond the mmdb database.
docker run -p 8080:8080 \
-v ./db:/data \
-e GEOIP_DB_URL="https://<user>:<license_key>@download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz" \
letstool/http2geoip:latest
Open http://localhost:8080 to use the web UI, or query the API directly:
curl -s -X POST http://localhost:8080/api/v1/geoip \
-H "Content-Type: application/json" \
-d '{"ip":"8.8.8.8","lang":"en"}' | jq
| CLI flag | Environment variable | Default |
|---|---|---|
-listen | GEOIP_LISTEN_ADDR | 127.0.0.1:8080 |
-db-url | GEOIP_DB_URL | (none) |
-db-dir | GEOIP_DB_DIR | /data |
-update-hour | GEOIP_UPDATE_HOUR | 02:00 |
-max-ips | GEOIP_MAX_IPS | 100 |
CLI flags take priority over environment variables.
docker run -p 8080:8080 \
-v ./db:/data \
-e GEOIP_DB_URL="https://<user>:<key>@download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz" \
-e GEOIP_LISTEN_ADDR=0.0.0.0:8080 \
-e GEOIP_UPDATE_HOUR=03:00 \
-e GEOIP_MAX_IPS=500 \
letstool/http2geoip:latest
If you already have a running http2geoip instance, other containers can sync their database from it directly — no MaxMind account required on the peers:
docker run -p 8080:8080 \
-e GEOIP_DB_URL=http://primary-geoip-host:8080 \
letstool/http2geoip:latest
https://github.com/letstool/http2geoip
This project is licensed under the Apache License, Version 2.0.
Copyright (c) 2026 letstool.net
| Project | GitHub | Docker Hub | Description |
|---|---|---|---|
http2dns | letstool/http2dns | letstool/http2dns | Fast & lightweight HTTP gateway that serves DNS queries as a JSON REST API |
http2whois | letstool/http2whois | letstool/http2whois | Fast & lightweight HTTP gateway that serves WHOIS queries as a JSON REST API |
http2rdap | letstool/http2rdap | letstool/http2rdap | Fast & lightweight HTTP gateway that serves RDAP queries as a JSON REST API |
http2geoip | letstool/http2geoip | letstool/http2geoip | Fast & lightweight HTTP gateway that serves IP geolocation database as a JSON REST API |
http2cert | letstool/http2cert | letstool/http2cert | Fast & lightweight HTTP gateway that serves X.509 certificate inspection as a JSON REST API |
http2tor | letstool/http2tor | letstool/http2tor | Fast & lightweight HTTP gateway that serves Tor IP database as a JSON REST API |
http2sun | letstool/http2sun | letstool/http2sun | Fast & lightweight HTTP gateway that serves solar position algorithm as a JSON REST API |
http2mac | letstool/http2mac | letstool/http2mac | Fast & lightweight HTTP gateway that serves MAC address OUI database as a JSON REST API |
http2country | letstool/http2country | letstool/http2country | Fast & lightweight HTTP gateway that serves country database as a JSON REST API |
http2prefix | letstool/http2prefix | letstool/http2prefix | Fast & lightweight HTTP gateway that serves Internet BGP routing database as a JSON REST API |
http2registry | letstool/http2registry | letstool/http2registry | Fast & lightweight HTTP gateway that serves RIR/NIR Internet registry database as a JSON REST API |
Content type
Image
Digest
sha256:fdb247c05…
Size
3 MB
Last updated
4 months ago
docker pull letstool/http2geoip