ca55b48d24c276a819f79298db17e40988fa75b7
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
->.env
i uzupełnij. docker-compose up --build -d
- API:
GET /ip/{ip}
lubGET /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:
-
GitHub Releases (latest) →
.mmdb
-
MAXMIND_DIRECT_DB_URL
-
Oficjalne pobieranie MaxMind przez
MAXMIND_LICENSE_KEY
+MAXMIND_DOWNLOAD_URL_TEMPLATE
Description
Languages
Python
97.9%
Dockerfile
1.8%
Shell
0.3%