[ 'window_title' => 'CluPilot-Server — Terminal', // Auf der Einstellungsseite, am Knopf. 'open' => 'Terminal öffnen', 'hint' => 'Öffnet ein eigenes Fenster mit einer Root-Sitzung auf dem CluPilot-Server.', // Was auf der Bühne steht — dem Bild, das über dem Terminal liegt. // Dieselben sechs Fälle wie beim Host, weil es dieselbe Brücke ist; // nur nennen sie hier keinen Hostnamen, sondern die eine Maschine, auf // der diese Konsole selbst läuft. 'stage' => [ 'connecting' => [ 'title' => 'Verbinde mit dem CluPilot-Server', 'note' => 'Das Einmal-Ticket wird eingelöst und die Sitzung aufgebaut.', ], 'ended' => [ 'title' => 'Sitzung beendet', 'note' => 'Die Verbindung zum Server wurde geschlossen. Ein neuer Anlauf öffnet eine frische Sitzung.', ], 'lost' => [ 'title' => 'Keine Verbindung', 'note' => 'Es kam keine Sitzung zustande. Läuft der Terminal-Dienst?', ], 'rejected' => [ 'title' => 'Ticket nicht mehr gültig', 'note' => 'Ein Ticket gilt dreißig Sekunden und genau einmal. Dieses war abgelaufen oder schon eingelöst — ein neuer Anlauf stellt ein frisches aus.', ], // Absichtlich ohne Festlegung: die Brücke schickt 4502 für JEDE // gescheiterte Anmeldung. Beim Server sind zwei Fälle so viel // wahrscheinlicher als der Rest, dass sie hier stehen — und beide // haben dieselbe Rückfahrkarte. 'unreachable' => [ 'title' => 'Keine Sitzung auf dem Server', 'note' => 'Die Brücke kam nicht bis zur Kommandozeile. Am wahrscheinlichsten sind zwei Gründe: der Serverschlüssel steht nicht mehr in /root/.ssh/authorized_keys, oder der Server hat seine Hostschlüssel neu erzeugt und der hinterlegte Fingerabdruck passt nicht mehr. Beides räumt ein erneutes „sudo bash deploy/install-agent.sh" auf dem Server aus. Was genau es war, steht im Protokoll des Terminal-Dienstes; dieses Fenster erfährt es absichtlich nicht.', ], 'service_down' => [ 'title' => 'Der Terminal-Dienst läuft nicht', 'note' => 'Die Konsole steht, die Brücke dahinter nicht: nginx meldet für diese Stelle 502. Auf dem Server hilft „docker compose up -d terminal". Sie teilt sich den Netz-Namensraum des Tunnel-Containers und muss nach jedem Neustart des Tunnels selbst mit neu gestartet werden — sonst lauscht sie in einem Namensraum, den es nicht mehr gibt, und meldet dabei weiter „healthy".', ], 'not_here' => [ 'title' => 'Auf diesem Namen gibt es kein Terminal', 'note' => 'Die Brücke ist Werkzeug der Konsole und antwortet auf öffentlichen Hostnamen mit 404 — dieselbe Regel wie für /admin. Öffne die Konsole unter ihrem eigenen Namen.', ], 'retry' => 'Neu verbinden', ], // Gründe, die schon der Server kennt. Sie stehen sofort da, statt dass // ein Fenster aufgeht und auf eine Verbindung wartet, die es nicht // geben kann. 'problem' => [ 'no_key' => [ 'title' => 'Für den Server ist keine Kennung erzeugt', 'note' => 'Das Terminal zum Server hat einen eigenen SSH-Schlüssel, getrennt vom Flottenschlüssel. Er wird unter Einstellungen erzeugt.', ], 'not_installed' => [ 'title' => 'Der Server ist dafür noch nicht eingerichtet', 'note' => 'Der Schlüssel ist erzeugt, aber auf dem Server noch nicht hinterlegt. Dort einmal „sudo bash deploy/install-agent.sh" ausführen — das trägt ihn ein und hält den Fingerabdruck des Servers fest.', ], 'off_network' => [ 'title' => 'Nicht von dieser Adresse', 'note' => 'Eine Root-Sitzung auf dem Server geht nur aus dem Management-Netz oder von einer freigegebenen Adresse auf. Wer im VPN steht, kommt hier durch — die Liste steht unter Einstellungen.', ], 'unknown' => [ 'title' => 'Das Terminal lässt sich gerade nicht öffnen', 'note' => 'Beim Ausstellen des Tickets ist etwas schiefgegangen. Der Vorfall steht im Protokoll; ein neuer Anlauf ist einen Versuch wert.', ], ], ], ];