diff --git a/app/Livewire/Help/Index.php b/app/Livewire/Help/Index.php index ef6cad0..0eb8a70 100644 --- a/app/Livewire/Help/Index.php +++ b/app/Livewire/Help/Index.php @@ -17,7 +17,7 @@ class Index extends Component /** Help topics in display order. */ private const TOPICS = [ 'overview', 'domain-tls', 'security', 'updates', 'commands', - 'servers', 'sessions', 'email', 'audit', 'recovery', + 'servers', 'sessions', 'email', 'audit', 'wireguard', 'recovery', ]; #[Url] @@ -51,6 +51,7 @@ class Index extends Component 'sessions' => __('help.topic_sessions'), 'email' => __('help.topic_email'), 'audit' => __('help.topic_audit'), + 'wireguard' => __('help.topic_wireguard'), 'recovery' => __('help.topic_recovery'), ]; diff --git a/lang/de/help.php b/lang/de/help.php index e4656a6..e8e22cd 100644 --- a/lang/de/help.php +++ b/lang/de/help.php @@ -15,5 +15,6 @@ return [ 'topic_sessions' => 'Sitzungen & Benutzer', 'topic_email' => 'E-Mail (SMTP)', 'topic_audit' => 'Audit-Log', + 'topic_wireguard' => 'WireGuard-Zugang', 'topic_recovery' => 'Konto-Wiederherstellung', ]; diff --git a/lang/en/help.php b/lang/en/help.php index 78cd4a2..6c53bcb 100644 --- a/lang/en/help.php +++ b/lang/en/help.php @@ -15,5 +15,6 @@ return [ 'topic_sessions' => 'Sessions & users', 'topic_email' => 'Email (SMTP)', 'topic_audit' => 'Audit log', + 'topic_wireguard' => 'WireGuard access', 'topic_recovery' => 'Account recovery', ]; diff --git a/resources/views/livewire/help/content/de/wireguard.blade.php b/resources/views/livewire/help/content/de/wireguard.blade.php new file mode 100644 index 0000000..2af8036 --- /dev/null +++ b/resources/views/livewire/help/content/de/wireguard.blade.php @@ -0,0 +1,36 @@ +@php + $h = 'font-display text-base font-semibold text-ink'; + $p = 'text-sm leading-relaxed text-ink-2'; + $li = 'text-sm leading-relaxed text-ink-2'; + $code = 'rounded bg-inset px-1.5 py-0.5 font-mono text-[12px] text-accent-text'; +@endphp + +
Stellt das gesamte Panel hinter einen WireGuard-Tunnel: Der Server wird zum WG-Server, deine Geräte verbinden sich als Peers, und das Panel (HTTP/HTTPS, Ports 80/443) ist nur noch über den Tunnel erreichbar. Eine Netzwerk-Sperre zusätzlich zu 2FA und Anmeldeschutz: Die schützen das Login, dies verbirgt das ganze Panel vor dem öffentlichen Internet.
+Alles läuft über die Host-CLI clusev wg … (per SSH auf dem Server). Standardmäßig ist nichts aktiv — du entscheidest, wann der Tunnel und die Sperre eingeschaltet werden.
clusev wg setupInteraktiv, jeder Wert mit sinnvoller Vorgabe und Erklärung:
+10.99.0.0/24) — ein privates Netz, das nicht mit deinem LAN/VPN kollidieren darf. Eine Kollision wird erkannt und abgewiesen.Setup startet den Tunnel (übersteht Neustarts), aktiviert aber nicht die Sperre — das Panel bleibt zunächst öffentlich.
+Den QR-Code aus setup (oder clusev wg add-peer <name>) in der WireGuard-App scannen. Standard ist Split-Tunnel: nur Panel-Verkehr läuft über WG, dein normales Internet nicht. Voll-Tunnel (0.0.0.0/0) ist möglich, aber nicht empfohlen.
Verbinden, dann http://<Server-Tunnel-IP> öffnen — erreicht das Panel? Erst wenn der Tunnel sicher funktioniert, die Sperre aktivieren.
clusev wg up / downclusev wg up sperrt 80/443 auf das WG-Subnetz — von außen ist das Panel danach nicht mehr erreichbar. clusev wg status zeigt Peers, Handshakes und den Sperr-Status.
Notausgang: clusev wg down (per SSH) entfernt die Sperre sofort — das Panel ist wieder öffentlich. SSH (Port 22) und der WireGuard-Port sind von der Sperre nie betroffen, du kommst also immer per SSH auf den Server.
Schlägt wg0 nach einem Neustart fehl, wird die Sperre nicht angewendet — das Panel bleibt öffentlich erreichbar statt dich auszusperren.
Puts the whole panel behind a WireGuard tunnel: the server becomes a WG server, your devices peer in, and the panel (HTTP/HTTPS, ports 80/443) is reachable only through the tunnel. A network-layer gate on top of 2FA and the login protection: those guard the login; this hides the whole panel from the public internet.
+Everything runs through the host CLI clusev wg … (over SSH on the server). Nothing is active by default — you decide when the tunnel and the gate go on.
clusev wg setupInteractive, every value pre-filled with a sensible default and a hint:
+10.99.0.0/24) — a private network that must not clash with your LAN/VPN. A collision is detected and rejected.Setup starts the tunnel (survives reboots) but does not enable the gate — the panel stays public for now.
+Scan the QR code from setup (or clusev wg add-peer <name>) in the WireGuard app. The default is split tunnel: only panel traffic goes through WG, your normal internet does not. Full tunnel (0.0.0.0/0) is possible but not recommended.
Connect, then open http://<server-tunnel-ip> — does it reach the panel? Only once the tunnel reliably works, enable the gate.
clusev wg up / downclusev wg up restricts 80/443 to the WG subnet — from outside the panel is then unreachable. clusev wg status shows peers, handshakes and the gate state.
Escape hatch: clusev wg down (over SSH) removes the gate immediately — the panel is public again. SSH (port 22) and the WireGuard port are never affected by the gate, so you can always reach the server over SSH.
If wg0 fails to come up after a reboot, the gate is not applied — the panel stays publicly reachable rather than locking you out.