Geo-Checker
Simple GeoIP Lookup Server

High-performance, open-source IP geolocation API. Built on OpenResty and MaxMind. Ready for Docker and Kubernetes.

Blazing Fast

Built on OpenResty (Nginx) for high-performance, non-blocking I/O. Handles thousands of requests per second with ease.

🎯

Accurate Data

Uses MaxMind GeoIP2 databases for reliable IP-to-location resolution. Includes built-in cron for automatic database updates.

🐳

Docker Ready

Lightweight Docker image based on Alpine Linux. Easy to deploy and integrate into your existing microservices architecture.

☸️

Kubernetes Native

Full Helm chart support for easy deployment to Kubernetes clusters. Scalable and cloud-native ready.

geo-checker: ~
# Country Detection curl localhost:8080/ip/8.8.8.8
{
"IP": "8.8.8.8",
"iso2Code": "US",
"name": "United States"
}
# City Detection curl localhost:8080/ip/city/8.8.8.8
{
"ip": "8.8.8.8",
"country_iso_code": "US",
"country_name": "United States",
"city_name": "Mountain View",
"continent_name": "North America",
"subdivision_iso_code": "CA",
"subdivision_name": "California"
}
# IPv6 Support curl localhost:8080/ip/city/2a03:2880:f189:80:face:b00c:0:25de
{
"ip": "2a03:2880:f189:80:face:b00c:0:25de",
"country_iso_code": "GB",
"country_name": "United Kingdom",
"city_name": "London",
"continent_name": "Europe"
}
# Possible to pass IP address as a custom header or cloudflare header curl localhost:8080/myip -H "X-Real-Ip: 8.8.8.8"
{
"IP": "8.8.8.8",
"iso2Code": "US",
"name": "United States"
}

Installation

# Run with Docker
docker run -d \
  -e GEOIP_ACCOUNTID="YourAccountID" \
  -e GEOIP_LICENSEKEY="YourLicenseKey" \
  -e GEOIP_EDITIONID="GeoLite2-Country" \
  -p 8080:80 \
  ymuski/geo-checker:latest
# Add Helm Repo
helm repo add geo-checker https://yurymuski.github.io/geo-checker/helm/
helm repo update

# Install Chart
helm upgrade --install my-geo-checker geo-checker/geo-checker \
  --set maxmind.geoipAccountid="YourAccountID" \
  --set maxmind.geoipLicensekey="YourLicenseKey"