CluPilotCloud/lang/de/integrations.php

110 lines
8.0 KiB
PHP

<?php
return [
'title' => 'Integrationen',
'subtitle' => 'Angebundene Dienste, gruppiert nach Zweck — Zugangsdaten und Einstellungen nebeneinander, nicht auf getrennten Seiten nach Speicherort.',
'payments_title' => 'Zahlungen (Stripe)',
'payments_body' => 'Der Secret Key, mit dem Zahlungen entgegengenommen und Webhooks geprüft werden.',
'dns_title' => 'DNS (Hetzner)',
'dns_body' => 'API-Token, Zone und wo Traefik seine dynamische Konfiguration erwartet.',
'dns_zone' => 'DNS-Zone',
'dns_zone_hint' => 'Zum Beispiel clupilot.com — Kundeninstanzen erhalten <subdomain>.<Zone>.',
'traefik_path' => 'Traefik: Pfad für dynamische Konfiguration',
'traefik_path_hint' => 'Verzeichnis auf dem Traffic-Host, in das Routen geschrieben werden.',
'monitoring_title' => 'Monitoring',
'monitoring_body' => 'API-Token und wo die Kuma-Bridge erreichbar ist.',
'monitoring_url' => 'Monitoring-Bridge-URL',
'monitoring_url_hint' => 'Zum Beispiel http://kuma-bridge:8080. Leer lässt Monitoring aus.',
'vpn_title' => 'VPN/WireGuard',
'vpn_body' => 'Wie ein neuer Host CluPilot als VPN-Hub erreicht. Der private Hub-Schlüssel bleibt in der Serverdatei — hier stehen nur der öffentliche Teil und die Adresse.',
'wg_endpoint' => 'Hub-Endpunkt',
'wg_endpoint_hint' => 'Öffentlich erreichbare Adresse und Port, z. B. vpn.clupilot.com:51820.',
'wg_hub_pubkey' => 'Hub-Public-Key',
'wg_hub_pubkey_hint' => 'Ausgabe von wg pubkey < /etc/wireguard/privatekey auf diesem Server.',
'ssh_title' => 'SSH-Identität',
'ssh_body' => 'Der Schlüssel, der auf jedem neuen Host hinterlegt wird — öffentlicher und privater Teil zusammen an einer Stelle.',
'ssh_public_key' => 'SSH-Schlüssel (öffentlich)',
'ssh_public_key_hint' => 'Wird bei der Host-Aufnahme in authorized_keys eingetragen.',
'save_settings' => 'Einstellungen speichern',
'settings_saved' => 'Gespeichert. Der neue Wert gilt ab sofort.',
// .env-Editor (Teil B).
'env_title' => 'Erweitert: Serverdatei (.env)',
'env_subtitle' => 'Alles, was oben kein eigenes Feld hat — roh, wie auf dem Server. Ohne diesen Editor bräuchte es dafür eine Shell.',
'env_locked' => 'Gesperrt. Oben entsperren, um die Serverdatei zu sehen.',
'env_danger_title' => 'Diese Zeilen können die Konsole selbst aussperren',
'env_danger_body' => 'Ein falscher Wert in einer dieser Zeilen macht die Konsole für Sie selbst unerreichbar: APP_KEY, DB_* (Datenbankverbindung), REDIS_* (Sitzungen, Cache, Warteschlange), SESSION_*. Nicht gesperrt — volle Kontrolle war die Entscheidung —, aber diese Zeilen verdienen einen zweiten Blick.',
'env_vault_title' => 'Von der Zugangsdaten-Verwaltung verwaltet',
'env_vault_body' => 'SecretVault::get() bevorzugt einen hier hinterlegten Wert und weicht nur auf die Serverdatei aus, wenn keiner hinterlegt ist. Solange oben ein Wert hinterlegt ist, ändert die passende Zeile unten nichts — sonst widerspräche sich die Konsole selbst.',
'env_vault_active' => 'hinterlegt — diese Zeile wirkt nicht',
'env_vault_inactive' => 'nicht hinterlegt — diese Zeile gilt',
'env_label' => 'Inhalt von .env',
'env_save' => 'Speichern',
'env_backup_title' => 'Sicherung',
'env_backup_body' => 'Vor jedem Speichern wird eine Kopie neben .env abgelegt (Dateiname .env.bak-Zeitstempel). Sie werden nicht automatisch gelöscht.',
// queue, queue-provisioning, scheduler und reverb lesen .env nur beim
// eigenen Start. Bis hierher war das Homework — „starten Sie das jetzt
// selbst neu" — dieselbe Klage wie beim Update-Knopf davor: über die
// Kommandozeile nacharbeiten, was die Konsole schon wusste. Speichern
// löst das jetzt selbst aus (App\Livewire\Admin\Integrations::saveEnv()):
// den Konfigurations-Cache leeren (sofort, ohne den Host-Agenten — dafür
// braucht es keine besonderen Rechte) und den Neustart beim Agenten
// anfordern (App\Services\Deployment\UpdateChannel::requestRestart()).
'env_restart_title' => 'Was beim Speichern automatisch passiert',
'env_restart_body' => 'queue, queue-provisioning, scheduler und reverb lesen .env nur beim eigenen Start. Speichern hier löst deshalb automatisch aus: der Konfigurations-Cache wird geleert, und diese vier Dienste werden neu gestartet. Diese Konsole selbst (app) wird dabei nie angefasst — sie bedient gerade die Anfrage, die das ausgelöst hat, und ihr PHP liest .env bei jeder neuen Anfrage ohnehin frisch.',
'env_restarting' => 'Dienste werden neu gestartet …',
'env_restart_done' => 'Dienste neu gestartet.',
'env_save_title' => '.env wirklich überschreiben?',
'env_save_body' => 'Sie enthält jedes Zugangsdatum im System. Eine Sicherung wird zuvor angelegt, und die betroffenen Dienste werden nach dem Speichern automatisch neu gestartet.',
'env_save_confirm' => 'Überschreiben',
// Drei Ausgänge nach dem Schreiben, nie eine geschönte Erfolgsmeldung: der
// Neustart wurde angefordert, oder er konnte es nicht — weil der
// Host-Agent nicht läuft oder weil schon etwas anderes läuft — und dann
// steht hier der manuelle Befehl statt eines Versprechens.
'env_saved_restarting' => 'Gespeichert. Sicherung: :backup. Konfigurations-Cache geleert — queue, queue-provisioning, scheduler und reverb werden jetzt neu gestartet.',
'env_saved_restart_busy' => 'Gespeichert. Sicherung: :backup. Es läuft gerade schon eine andere Anfrage an den Update-Dienst — der Neustart entfällt diesmal automatisch. Bitte manuell ausführen: docker compose restart queue queue-provisioning scheduler reverb.',
'env_saved_no_agent' => 'Gespeichert. Sicherung: :backup. Der Update-Dienst auf dem Server läuft nicht — queue, queue-provisioning, scheduler und reverb halten noch die alten Werte. Bitte manuell ausführen: docker compose restart queue queue-provisioning scheduler reverb.',
// Nur wenn keine .env vorher existierte — dann gibt es nichts zu sichern.
'env_no_previous_file' => 'keine, da zuvor keine Datei existierte',
'env_invalid' => 'Zeile :line ist weder leer, noch ein Kommentar, noch SCHLÜSSEL=Wert. Nichts wurde gespeichert.',
'env_empty' => 'Eine leere Datei würde jede Einstellung löschen. Nichts wurde gespeichert.',
'inbound_title' => 'Support-Postfach (Posteingang)',
'inbound_body' => 'Von hier holt CluPilot Kundenmails ab und zeigt sie unter Betrieb → Posteingang. IMAP, nicht die mailcow-API: die API verwaltet Domains und Postfächer, gelesen wird ein Postfach über IMAP. Das Passwort liegt verschlüsselt im Tresor.',
'inbound_host' => 'IMAP-Server',
'inbound_port' => 'Port',
'inbound_port_hint' => '993 ist IMAP über TLS. Alles andere läuft unverschlüsselt — dieser Zugang trägt ein Passwort und die Worte Ihrer Kunden.',
'inbound_username' => 'Postfach',
'inbound_folder' => 'Ordner',
'inbound_test' => 'Verbindung prüfen',
'inbound_never' => 'Noch nie geprüft.',
'inbound_last_ok' => 'Zuletzt erreichbar: :when (:ago)',
'inbound_last_failed' => 'Zuletzt fehlgeschlagen: :when (:ago)',
'inbound_ok' => 'Postfach erreichbar.',
'inbound_ok_waiting' => '{0} Postfach erreichbar, nichts Ungelesenes.|{1} Postfach erreichbar, :count ungelesene Nachricht.|[2,*] Postfach erreichbar, :count ungelesene Nachrichten.',
'inbound_failed_incomplete' => 'Es fehlen noch Angaben: Server, Postfach oder Passwort.',
'inbound_failed_unreachable' => 'Der Server ist nicht erreichbar. Stimmen Adresse und Port?',
'inbound_failed_credentials' => 'Der Server hat die Anmeldung abgelehnt. Stimmen Postfach und Passwort?',
'inbound_failed_folder' => 'Anmeldung hat funktioniert, den Ordner gibt es aber nicht.',
'inbound_failed_failed' => 'Die Verbindung ist fehlgeschlagen. Näheres steht im Log.',
// Die Reiter. Getrennt nach dem, wofür ein Abschnitt da ist — nicht danach,
// welcher Speichermechanismus einen Wert zufällig hält.
'tab' => [
'services' => 'Dienste',
'platform' => 'Plattform',
'env' => 'Umgebung (.env)',
],
];