# 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 panelu - `api.php` — backend API (SQLite) - `init_db.py` — inicjalizacja SQLite - `refresh_domain_data.py` — sync Mongo -> SQLite - `update_registrar_prices.py` — auto-update cen - `refresh_and_publish.sh` — pełny refresh + publikacja do `/var/www/domain-panel` - `data/registrars.json` — źródło rejestratorów + reguły autoPricing ## Wymagania - Python 3 - Docker + kontener `mongo` (z auth) - `mongosh` dostępny w kontenerze mongo - `sudo` do publikacji do `/var/www/domain-panel` ## Quick start (lokalnie) ```bash python3 init_db.py python3 update_registrar_prices.py || true python3 refresh_domain_data.py ``` ## Produkcja / deploy Uruchom z katalogu repo: ```bash ./refresh_and_publish.sh ``` Skrypt: 1. aktualizuje DB panelu, 2. synchronizuje pliki do `/var/www/domain-panel`, 3. ustawia właściciela `www-data` i 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.