feba31ce6f920908bc1ab9978dbc2ecfbba9751b
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:
- Skopiuj
.env.example->.envi uzupełnij. docker-compose up --build -d- API:
GET /ip/{ip}lubGET /ip. Reload:POST /reloadz 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:
-
GitHub Releases (latest) →
.mmdb -
MAXMIND_DIRECT_DB_URL -
Oficjalne pobieranie MaxMind przez
MAXMIND_LICENSE_KEY+MAXMIND_DOWNLOAD_URL_TEMPLATE
Description
Languages
Python
98%
Dockerfile
1.7%
Shell
0.3%