35 lines
1.1 KiB
Markdown
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`
|
|
|