feat(cluster): Seite komplett neu — Blank-Page-Fix + Node-Join-Wizard
Seite war komplett leer wenn die Cluster-API einen Fehler zurückgab (if(!data) return null). Jetzt: sichtbarer Error-Banner mit Retry, keine leere Seite mehr. Neuer 4-Schritt-Wizard "Zweiten Node hinzufügen" immer sichtbar: 1. Installer-Oneliner (copyable) 2. Join-Token generieren (Button → POST /cluster/join-tokens) 3. cluster-join-Befehl inkl. Token inline auf der Seite (kein Modal) 4. systemctl restart edgeguard-api Token + CA-Fingerprint + Befehl erscheinen direkt in Schritt 3 nach Token-Generierung — kein separates Modal mehr nötig. common.retry i18n-Key ergänzt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -448,7 +448,19 @@
|
||||
"noSelf": "Selbst-Registrierung in ha_nodes fehlgeschlagen — Setup-Wizard durchlaufen.",
|
||||
"peersTitle": "Peers ({{count}})",
|
||||
"singleNodeTitle": "Single-Node-Modus",
|
||||
"singleNodeDesc": "Nur diese Box bekannt. Zusätzlicher Knoten? `edgeguard-ctl cluster-join` (kommt in Phase 3.2).",
|
||||
"singleNodeDesc": "Nur diese Box bekannt. Folge den Schritten unten um einen zweiten Node beizutreten.",
|
||||
"addNodeTitle": "Zweiten Node dem Cluster hinzufügen",
|
||||
"step1Title": "1 — EdgeGuard auf dem neuen Host installieren",
|
||||
"step1Desc": "Als root auf dem neuen Host ausführen (Debian 13, amd64):",
|
||||
"step2Title": "2 — Join-Token hier generieren (auf diesem Primary-Node)",
|
||||
"step2Desc": "Erzeugt einen einmaligen HMAC-Token, der 30 Minuten gültig ist. Der Token autorisiert den neuen Node ein signiertes Cluster-TLS-Zertifikat zu erhalten.",
|
||||
"step3Title": "3 — Auf dem neuen Node ausführen",
|
||||
"step3NoToken": "Zuerst oben auf \"Join-Token erzeugen\" klicken — der vollständige Befehl erscheint dann hier.",
|
||||
"step4Title": "4 — edgeguard-api auf dem neuen Node neu starten",
|
||||
"step4Desc": "Der Dienst lädt das neue Cluster-TLS-Zertifikat und beginnt Heartbeats zu senden. Der Node erscheint innerhalb von 30 Sekunden in der Peers-Tabelle.",
|
||||
"apiUnreachable": "Cluster-API nicht erreichbar",
|
||||
"tokenLabel": "Token",
|
||||
"caFingerprintLabel": "CA-Fingerabdruck",
|
||||
"driftBanner": "Config-Drift erkannt",
|
||||
"driftBannerDesc": "Ein oder mehrere Peers haben einen anderen Config-Hash als dieser Node. Entweder stehen noch Änderungen in der Outbox, oder auf einem Peer wurde direkt in der DB editiert. Warte bis die Outbox leer ist oder starte Diagnostics.",
|
||||
"col": {
|
||||
@@ -1069,6 +1081,7 @@
|
||||
"download": "Download",
|
||||
"copy": "Kopieren",
|
||||
"copied": "Kopiert",
|
||||
"retry": "Erneut versuchen",
|
||||
"close": "Schließen",
|
||||
"refresh": "Aktualisieren",
|
||||
"up": "UP",
|
||||
|
||||
@@ -448,7 +448,19 @@
|
||||
"noSelf": "Self-registration in ha_nodes failed — run the setup wizard.",
|
||||
"peersTitle": "Peers ({{count}})",
|
||||
"singleNodeTitle": "Single-node mode",
|
||||
"singleNodeDesc": "Only this box is known. To add another node: `edgeguard-ctl cluster-join` (coming in phase 3.2).",
|
||||
"singleNodeDesc": "Only this box is known. Follow the steps below to join a second node.",
|
||||
"addNodeTitle": "Add second node to cluster",
|
||||
"step1Title": "1 — Install EdgeGuard on the new host",
|
||||
"step1Desc": "Run as root on the new host (Debian 13, amd64):",
|
||||
"step2Title": "2 — Generate a join token here (on this primary node)",
|
||||
"step2Desc": "Creates a one-time HMAC token valid for 30 minutes. The token authorises the new node to receive a signed cluster TLS certificate.",
|
||||
"step3Title": "3 — Run on the new node",
|
||||
"step3NoToken": "Click \"Generate join token\" above — the full command will appear here.",
|
||||
"step4Title": "4 — Restart edgeguard-api on the new node",
|
||||
"step4Desc": "The service loads the new cluster TLS certificate and starts sending heartbeats. The node appears in the Peers table within 30 seconds.",
|
||||
"apiUnreachable": "Cluster API not reachable",
|
||||
"tokenLabel": "Token",
|
||||
"caFingerprintLabel": "CA fingerprint",
|
||||
"driftBanner": "Config drift detected",
|
||||
"driftBannerDesc": "One or more peers have a different config hash than this node. Either changes are still in the outbox or a peer was edited directly in the DB. Wait for the outbox to drain or run diagnostics.",
|
||||
"col": {
|
||||
@@ -1069,6 +1081,7 @@
|
||||
"download": "Download",
|
||||
"copy": "Copy",
|
||||
"copied": "Copied",
|
||||
"retry": "Retry",
|
||||
"close": "Close",
|
||||
"refresh": "Refresh",
|
||||
"up": "UP",
|
||||
|
||||
Reference in New Issue
Block a user