Hostname-Einstellung, DHCP-Range-Pflicht, Topbar-Ampel, Text-Straffung, Quelltext-Huerde
Hostname (Systemeinstellungen, neben Pruefintervall): - hostnamectl set-hostname ueber die App, Validierung (RFC-1123-artiges Label), kein Revert-Timer noetig (kappt die Erreichbarkeit nicht wie eine IP-Aenderung). Live getestet inkl. Validierung und Revert. DHCP: Range ist jetzt Pflicht, kein geratener Default mehr: - dhcp_range_start/end/dns starten leer (Platzhaltertext statt fake- echt aussehendem Default) - ein Zufalls-Range haette den Dienst sonst unbemerkt mit einer zum echten Netz nicht passenden Konfiguration starten lassen koennen. - write_dhcp_file und dhcp_service_action=enable_restart verweigern sich ohne eingetragene Range; _render_kea_config laesst "pools" ohne Range komplett weg statt einen kaputten Pool-String zu erzeugen. - Neues, separates dhcp_gateway-Feld (optional) fuer einen vom automatisch erkannten Gateway abweichenden Router fuer die Clients. Topbar-Ampel fuer den Kea-Dienst: - Gruener/roter Punkt neben dem Pruefintervall-Timer, nur sichtbar mit settings_dhcp.view (ein einzelner, kurzer systemctl-Aufruf pro Request, nicht die volle Status-Erkennung). Live verifiziert (rot wenn gestoppt, gruen wenn gestartet). Reservierungstabelle zeigt jetzt pro Client, welche eigene DHCP-Option greift (global oder Client-Override, mit Wert im Tooltip). Text-Straffung: die laengsten Hint-Texte und Code-Kommentare in Templates/app.py gekuerzt (u.a. groups.html, settings_dhcp.html, account.html, devices/switches/users/credentials.html, zwei grosse Migrations-/DHCP-Kommentarbloecke in app.py) - Kernaussagen erhalten, Redundanz entfernt. Quelltext-Huerde (KEINE echte Sicherheit, nur Abschreckung): Rechtsklick und DevTools-/Quelltext-Shortcuts per JS blockiert. Klar dokumentiert in Kommentar + README, dass der Browser HTML/CSS/JS immer vollstaendig ausliefert und das in Sekunden umgehbar ist - echte Absicherung bleiben ausschliesslich die serverseitigen Rechteprüfungen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -263,6 +263,16 @@ der aktiv weiterentwickelte Nachfolger und bildet „globaler Wert, pro Client
|
||||
schreibt die vollständige, generierte Kea-JSON-Konfiguration an den
|
||||
konfigurierten Ausgabepfad. Wirksam wird sie erst nach einem
|
||||
Dienst-Neustart über den separaten Button.
|
||||
- **Range ist Pflicht**: kein vorausgefüllter Default für Range/DNS mehr
|
||||
(nur Platzhaltertext) — ohne eingetragene Range schreibt „In Datei
|
||||
schreiben“ nichts und „Aktivieren & (neu) starten“ verweigert den Start,
|
||||
statt den Dienst mit einer geratenen, zum echten Netz eventuell nicht
|
||||
passenden Range laufen zu lassen. Gateway ist separat und optional
|
||||
überschreibbar (Default: automatisch erkanntes Gateway des Interfaces).
|
||||
- **Ampel im Topbar**: neben dem Prüfintervall-Timer zeigt ein grüner/roter
|
||||
Punkt, ob der Kea-Dienst läuft — nur sichtbar mit `settings_dhcp.view`.
|
||||
- Reservierungen mit aktiven eigenen Options zeigen in der Tabelle, welche
|
||||
Option greift (global oder Client-Override).
|
||||
|
||||
Live gegen eine echte, frisch installierte Kea-Instanz verifiziert:
|
||||
Installation, generierte Konfiguration besteht `kea-dhcp4 -t`, Dienststart
|
||||
@@ -274,8 +284,10 @@ Konfiguration.
|
||||
|
||||
Eigene, klar getrennte Funktion von obigem DHCP-*Server*: hier geht es um
|
||||
die Netzwerkkonfiguration des Hosts, auf dem der PoE Manager selbst läuft
|
||||
(IP-Adresse, DNS-Server, DHCP-Client vs. statisch) — nicht um Adressen, die
|
||||
er an andere Geräte vergibt.
|
||||
(IP-Adresse, DNS-Server, DHCP-Client vs. statisch, Hostname) — nicht um
|
||||
Adressen, die er an andere Geräte vergibt. Der Hostname wird separat und
|
||||
risikolos über `hostnamectl set-hostname` gesetzt (kein Revert-Timer nötig,
|
||||
da eine Änderung nicht die Erreichbarkeit kappt).
|
||||
|
||||
- **Backend-Erkennung**: prüft, ob NetworkManager oder dhcpcd aktiv ist
|
||||
(`systemctl is-active`). Ist keins von beiden aktiv, bleibt die Seite
|
||||
@@ -482,6 +494,13 @@ Voraussetzungen:
|
||||
empfiehlt es sich, `poe_web.service` künftig unter einem eigenen,
|
||||
unprivilegierten Systembenutzer laufen zu lassen (im Original wie auch hier
|
||||
aktuell `root`, um Änderungen am produktiven Setup nicht zu vergrößern).
|
||||
- Rechtsklick/DevTools-Shortcuts (F12, Strg+Umschalt+I/J/C, Strg+U) sind per
|
||||
JS blockiert (`initSourceProtection()` in `app.js`). Das ist eine Hürde
|
||||
gegen gelegentliches Kopieren, **keine echte Sicherheit** — der Browser
|
||||
liefert HTML/CSS/JS immer vollständig aus (sonst könnte er die Seite
|
||||
nicht darstellen), und jede dieser Sperren lässt sich in Sekunden umgehen
|
||||
(URL-Leiste, externer HTTP-Client, DevTools per Menü). Die eigentliche
|
||||
Absicherung sind ausschließlich die serverseitigen Rechteprüfungen.
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
|
||||
Reference in New Issue
Block a user