57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# 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.
|