gustavosett/wherego

By gustavosett

Updated 8 months ago

Lightweight IP geolocation API built with Go. Designed to provide location data for IP addresses.

Image
Networking
Security
Web servers
0

1.3K

gustavosett/wherego repository overview

WhereGo

WhereGo is a high-performance, lightweight IP geolocation API built with Go and Echo. It is designed to provide detailed location data for IP addresses with extremely low latency, making it ideal for high-traffic applications.

Features

  • Ultra-fast: Optimized for speed, achieving ~1ms per lookup.
  • 🌐 Multi-language: Returns location names in 8 languages (English, German, Spanish, French, Japanese, Portuguese (Brazil), Russian, and Chinese).
  • 📦 Tiny Image: Built on a distroless base, resulting in a compact image size (~40MB).
  • 🛡️ Secure: Runs as a non-root user for enhanced security.
  • 🐳 Multi-arch: Supports both amd64 and arm64 architectures.

Quick Start

Run the container and expose port 8080:

docker run -p 8080:8080 gustavosett/wherego:latest

Usage

To look up an IP address, send a GET request to the /lookup endpoint:

curl http://localhost:8080/lookup/8.8.8.8
Response Example

The API returns a JSON object with detailed geographical information:

{
    "traits": {
        "ip_address": "8.8.8.8",
        "network": "8.8.8.0/24"
    },
    "country": {
        "names": {
            "en": "United States",
            "pt-BR": "EUA"
        },
        "iso_code": "US"
    },
    "city": {
        "names": {
            "en": "Mountain View"
        }
    }
}

Documentation

For more details, visit the GitHub Repository.

Tag summary

Content type

Image

Digest

sha256:a9b141b10

Size

41.6 MB

Last updated

8 months ago

docker pull gustavosett/wherego