| .gitea/workflows | ||
| data | ||
| .gitignore | ||
| api.php | ||
| export_latest_domains.py | ||
| import_llm_scores.py | ||
| index.html | ||
| init_db.py | ||
| README.md | ||
| refresh_and_publish.sh | ||
| refresh_domain_data.py | ||
| update_registrar_prices.py | ||
Domain Hunter Panel
Dynamiczny panel do monitoringu wolnych domen i porównania kosztów rejestracji/odnowień.
Co robi
- Pobiera najnowsze wyniki skanu domen z Mongo (
aiagent.domain_scans) - Trzyma dane panelu w SQLite (
data/domainhunter.db) - Udostępnia API (
api.php) dla frontendu (bez statycznych JSON) - Pozwala edytować ceny rejestratorów i zapisuje je po stronie serwera (bez localStorage)
- Wspiera autopobieranie cen (heurystyki)
Struktura
index.html— frontend paneluapi.php— backend API (SQLite)init_db.py— inicjalizacja SQLiterefresh_domain_data.py— sync Mongo -> SQLiteupdate_registrar_prices.py— auto-update cenrefresh_and_publish.sh— pełny refresh + publikacja do/var/www/domain-paneldata/registrars.json— źródło rejestratorów + reguły autoPricing
Wymagania
- Python 3
- Docker + kontener
mongo(z auth) mongoshdostępny w kontenerze mongosudodo publikacji do/var/www/domain-panel
Quick start (lokalnie)
python3 init_db.py
python3 update_registrar_prices.py || true
python3 refresh_domain_data.py
Produkcja / deploy
Uruchom z katalogu repo:
./refresh_and_publish.sh
Skrypt:
- aktualizuje DB panelu,
- synchronizuje pliki do
/var/www/domain-panel, - ustawia właściciela
www-datai prawa.
Nginx (przykład)
Subdomena domainhunter.szmyt151.pl powinna proxyfikować do http://127.0.0.1:3008/domainhunter/
lub serwować statycznie z /var/www/domain-panel.
CI (Gitea)
Workflow jest w .gitea/workflows/ci.yml:
- syntax check Python,
- syntax check PHP,
- smoke uruchomienia skryptów
--help.
Uwaga o cenach
Auto-pobieranie cen jest heurystyczne — przed zakupem domeny zawsze zweryfikuj finalny cennik i koszt odnowienia u rejestratora.