Go to file
Adrian Miesikowski b01d32067f
Some checks failed
CI / lint (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
feat: add toggle to filter dictionary-based domain scans
2026-02-19 10:59:36 +01:00
.gitea/workflows feat: add auto-refresh and new-domain filter + deploy workflow 2026-02-17 22:59:14 +01:00
data chore: productionize panel repo with CI and repo-based deploy flow 2026-02-17 22:53:33 +01:00
.gitignore feat: initial domain hunter panel (dynamic DB-backed) 2026-02-17 22:48:53 +01:00
api.php feat: add tab with all domain records 2026-02-18 21:39:58 +01:00
export_latest_domains.py feat: add OpenClaw LLM scoring pipeline for all domains and surface in panel 2026-02-17 23:55:48 +01:00
import_llm_scores.py feat: add OpenClaw LLM scoring pipeline for all domains and surface in panel 2026-02-17 23:55:48 +01:00
index.html feat: add toggle to filter dictionary-based domain scans 2026-02-19 10:59:36 +01:00
init_db.py feat: add OpenClaw LLM scoring pipeline for all domains and surface in panel 2026-02-17 23:55:48 +01:00
README.md chore: productionize panel repo with CI and repo-based deploy flow 2026-02-17 22:53:33 +01:00
refresh_and_publish.sh chore: productionize panel repo with CI and repo-based deploy flow 2026-02-17 22:53:33 +01:00
refresh_domain_data.py feat: add OpenClaw LLM scoring pipeline for all domains and surface in panel 2026-02-17 23:55:48 +01:00
update_registrar_prices.py chore: productionize panel repo with CI and repo-based deploy flow 2026-02-17 22:53:33 +01:00

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)

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:

  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.