Files
ip-geo-api/README.md
Mateusz Gruszczyński b26b979a6a 1st commit
2025-10-06 08:27:10 +02:00

35 lines
1.1 KiB
Markdown

# IP Geo API
Krótko:
- FastAPI zwracające dane geo dla adresu IP (MaxMind GeoLite2 lub IP2Location).
- LRU cache, walidacja IPv4/IPv6, endpoint /reload chroniony BasicAuth.
- Updater pobiera/aktualizuje bazę do /data.
Uruchomienie:
1. Skopiuj `.env.example` -> `.env` i uzupełnij.
2. `docker-compose up --build -d`
3. API: `GET /ip/{ip}` lub `GET /ip`. Reload: `POST /reload` z BasicAuth (ADMIN_USER/ADMIN_PASS).
Pliki:
- app/: kod
- scripts/: downloader + updater
- data/: miejsce dla baz
## Bezpośredni URL do MMDB (np. GitHub Releases)
Jeśli posiadasz pełny link do pliku `.mmdb` (np. z projektu P3TERX/GeoLite.mmdb Releases),
ustaw `MAXMIND_DIRECT_DB_URL` w `.env`. Updater pobierze plik bez rozpakowywania archiwum.
## Automatyczne pobieranie z GitHub Releases
Ustaw `MAXMIND_GITHUB_REPO` (domyślnie `P3TERX/GeoLite.mmdb`). Updater sprawdzi `releases/latest` i pobierze pierwszy asset `.mmdb`.
Opcjonalnie dodaj `GITHUB_TOKEN` dla wyższych limitów GitHub API.
Priorytet w updaterze:
1) GitHub Releases (latest) → `.mmdb`
2) `MAXMIND_DIRECT_DB_URL`
3) Oficjalne pobieranie MaxMind przez `MAXMIND_LICENSE_KEY` + `MAXMIND_DOWNLOAD_URL_TEMPLATE`