Jump to content

Hamradio/reflector dashboard/pl

From MediaWiki For Hamradio Analog/Digital and Debian v13 software/Raspberry PI v3/4/5 howto
This page is a translated version of the page Hamradio/reflector dashboard and the translation is 91% complete.

Przewodnik po konfiguracji R.A.D.A.R. (Reflector Activity Dashboard And Reporting): panel webowy pokazujący na żywo, kto jest połączony z twoim SvxReflectorem, kto mówi i jak sieć jest połączona — z kontami użytkowników, listami talkgrup i narzędziami administracyjnymi.

💡 W jednym zdaniu: R.A.D.A.R. działa na tym samym serwerze co twój SvxReflector, odpytuje jego status i serwuje stronę webową na żywo (węzły, ostatnio słyszane, talkgrupy, topologia, CTCSS) z systemem rejestracji/logowania.
The reflector's /status on port 8099 is polled by svxdr proxy (8090), then svxdr nodelist (8098), served through nginx over HTTPS to the browser; PHP-FPM handles accounts in Redis.
⚠ To dla operatorów reflektorów, nie dla początkujących. W odróżnieniu od panelu węzła, R.A.D.A.R. to instalacja serwerowa: nginx + PHP + Redis + demon Go + prawdziwy certyfikat TLS. Jeśli masz tylko węzeł, nie potrzebujesz tego — chcesz SvxSpot Dashboard. Miarodajny przewodnik krok po kroku to INSTALL.md repo; ta strona to przyjazne podsumowanie.

Czy tego potrzebuję?

  • Prowadzisz SvxReflector (konkretnie build GeuReflector, który dodaje trunking reflektor-do-reflektora) i chcesz dla niego publiczny panel aktywności na pierwszy rzut oka.
  • Radzisz sobie z konfiguracją serwera webowego z HTTPS. To instalacja wielu usług na maszynie Debian.
  • Jeśli masz tylko węzeł (hotspot/przemiennik), zatrzymaj się tu — użyj SvxSpot Dashboard.

Czego potrzebujesz najpierw

Rzecz Po co
Działający SvxReflector (GeuReflector) na tej samej maszynie R.A.D.A.R. czyta jego endpoint /status (przykładowy port 8099).
Nazwa domeny + certyfikat TLS (Let's Encrypt) Logowanie używa ciasteczka Secure — nie działa po zwykłym HTTP.
nginx, PHP 8.4 + FPM (redis, mbstring, openssl, json), Redis 6+ serwer web, backend kont i magazyn kont/sesji.
MTA lub przekaźnik SMTP weryfikacja rejestracji i e-mail resetu hasła.
Go 1.24+ do kompilacji demona danych na żywo svxdr.

Zainstaluj pakiety (Debian 13 / Ubuntu 24.04):

sudo apt install nginx php8.4-fpm php8.4-redis php8.4-mbstring php8.4-cli \
                 redis-server certbot openssl rsync curl python3 sudo golang-go
💡 Debian 12 ma PHP 8.2; R.A.D.A.R. jest rozwijany na 8.4. Użyj Debiana 13 lub repo PHP z sury.org i wszędzie, gdzie widzisz 8.4, wstaw swoją rzeczywistą wersję.

Jak płyną dane (żeby porty miały sens)

Zdecydowanie najczęstszy błąd konfiguracji to niezgodny łańcuch portów. Dane płyną:

reflektor /status :8099 → svxdr proxy :8090 (buforuje, wzbogaca) → svxdr nodelist :8098 (buduje API + strumień SSE na żywo, czyta Redis dla zdarzeń węzłów) → nginx (HTTPS, reverse-proxy /svxportal/api/ na :8098) → twoja przeglądarka. Konta żyją w Redis; backend PHP (auth/*.php) z nim rozmawia.

Trzymaj te numery zgodne, a większość instalacji „po prostu działa”.

Instalacja (przegląd)

Sklonuj repo i wykonaj jego kroki 0–11 z INSTALL.md; kluczowe ruchy to:

  1. Pobierz kod: git clone https://git.sa7aux.se/bjorne/reflector-dashboard.git
  2. Wdróż pliki web przez rsync do /var/www/html/svxportal (właściciel www-data).
  3. Postaw dedykowany Redis na gnieździe unix, z hasłem; dodaj www-data do grupy redis.
  4. Dodaj drugą pulę PHP-FPM (svxadmin) używaną tylko przez API administracji reflektora.
  5. Utwórz plik listy talkgrup /etc/svxlink/tglist.json (przez dołączoną regułę tmpfiles).
  6. nginx + TLS: zainstaluj szablon strony, uruchom certbot dla swojej nazwy hosta, włącz stronę.
  7. Zbuduj i uruchom svxdr:
cd svxdr && CGO_ENABLED=0 go build -trimpath -o svxdr . && cd ..
sudo install -m0755 svxdr/svxdr /usr/local/bin/svxdr
sudo cp install/svxdr.json.example /etc/svxlink/svxdr.json   # then edit it
sudo cp install/systemd/svxdr.service /etc/systemd/system/svxdr.service
sudo systemctl daemon-reload && sudo systemctl enable --now svxdr
curl -s http://127.0.0.1:8098/healthz        # -> ok

Dwa pliki konfiguracyjne trzymają ustawienia: auth/config.php (backend web — hasło Redis, poczta, base_url, MQTT) i /etc/svxlink/svxdr.json (demon — Redis, trzy porty, seedy federacji). Skopiuj każdy z jego .example i edytuj.

Utworzenie pierwszego administratora

Dołączone CLI tworzy pierwsze konto (i oznacza jego e-mail jako zweryfikowany):

cd /var/www/html/svxportal
sudo -u www-data php svx-mkadmin.php

Pyta o znak, imię, e-mail, lokalizację, poziom admina i hasło. Poziomy: 1 = zwykły użytkownik, 2 = admin (konta, węzły, certyfikaty, talkgrupy), 3 = super-admin (także sekrety reflektora/MQTT i zarządzanie innymi adminami). Pozostali rejestrują się sami na stronie i weryfikują przez e-mail.

Użytkowanie

Otwórz https://YOUR.HOST.NAME/. Górna nawigacja ma:

Widok Pokazuje
Nodes Połączone węzły, z wyskakującym okienkiem, gdy ktoś mówi.
Reflector clients Przeszukiwalna lista wszystkich połączonych klientów.
Monitor → Nodes / Trunks / Topology Monitor na żywo; Topology rysuje całą sieć — twój reflektor w centrum, inne reflektory w pierścieniu, łącza trunk między nimi.
TG Monitor Kto jest na której talkgrupie (strona SVX i strona DMR).
Lastheard Ostatnia aktywność.
CTCSS Table Tony TX/RX na węzeł, 2 m vs UHF.
Changelog Dziennik zmian projektu.

Wbudowana strona Help (/help.html) ma zakładki dla Portalu, SvxLink, SvxReflector, GeuReflector, AllStar i więcej.

Warto wiedzieć / uczciwe zastrzeżenia

⚠ Strony administracji reflektora wymagają skryptów pomocniczych, które piszesz sam. Strony Admin → Reflector / Certificates / Node-control / MQTT wołają należące do roota pomocniki sudo w /usr/local/sbin/ (svxreflector-pty, svxreflector-systemctl, svxreflector-users, svx-mqtt-provision), które nie są dołączone — są specyficzne dla twojej maszyny. Cała reszta działa bez nich.
  • Sesja gubi się po jednej stronie? Nie jesteś na HTTPS (ciasteczko jest Secure) albo base_url jest zły.
  • Puste widoki na żywo? svxdr nie działa — sprawdź systemctl status svxdr i curl http://127.0.0.1:8098/healthz. Sam reflektor działa dalej mimo to.
  • Brak e-maila weryfikacyjnego? PHP mail() cicho zawodzi bez MTA — skonfiguruj przekaźnik SMTP.
  • API admina mówi „exec disabled”? Nigdy nie dodawaj exec do disable_functions PHP; portal go potrzebuje.

Rozwiązywanie problemów

Objaw Sprawdź
500 na dowolnym auth/*.php /var/log/nginx/svxportal-error.log i journalctl -u php8.4-fpm — zwykle złe hasło Redis, brak php-redis, albo www-data nie w grupie redis.
„Not connected” / puste widoki svxdr padł → nic na 127.0.0.1:8098.
Porty Potwierdź łańcuch 8099 → 8090 → 8098 → nginx w /etc/svxlink/svxdr.json i na stronie nginx.

Zobacz też

  • SvxSpot Dashboard — panel dla pojedynczego węzła (dużo prostszy).
  • Hamradio — SvxReflector i reszta poradników o głosie cyfrowym.
  • Autor: SA7AUX <bjorne@sa7aux.se>. AGPL-3.0-or-later.