Tailscale-Zugriff
Erreich purplemux vom Handy aus über HTTPS via Tailscale Serve — ohne Port-Forwarding, ohne Zertifikats-Jonglage.
Standardmäßig lauscht purplemux nur lokal. Tailscale Serve ist der sauberste Weg, es deinen anderen Geräten verfügbar zu machen: WireGuard-verschlüsselt, automatische Let's-Encrypt-Zertifikate, und keine Firewall-Änderungen.
Warum Tailscale
- WireGuard — jede Verbindung ist Gerät-zu-Gerät verschlüsselt.
- Automatisches HTTPS — Tailscale provisioniert ein echtes Zertifikat für
*.<tailnet>.ts.net. - Kein Port-Forwarding — deine Maschine öffnet nie einen Port ins öffentliche Internet.
- HTTPS ist auf iOS Pflicht — PWA-Installation und Web Push verweigern beide ohne. Siehe PWA-Setup und Web Push.
Voraussetzungen
- Ein Tailscale-Account, mit dem
tailscale-Daemon installiert und auf der Maschine, die purplemux betreibt, eingeloggt. - HTTPS auf dem Tailnet aktiviert (Admin-Konsole → DNS → HTTPS Certificates aktivieren, falls nicht schon geschehen).
- purplemux läuft auf dem Default-Port
8022(oder wo immer duPORTgesetzt hast).
Ausführen
Eine Zeile:
tailscale serve --bg 8022
Tailscale wickelt dein lokales http://localhost:8022 in HTTPS und exponiert es im Tailnet unter:
https://<machine>.<tailnet>.ts.net
<machine> ist der Hostname der Box; <tailnet> ist das MagicDNS-Suffix deines Tailnets. Öffne diese URL auf einem anderen Gerät, das im selben Tailnet eingeloggt ist, und du bist drin.
Zum Stoppen:
tailscale serve --bg off 8022
Was du tun kannst, sobald es läuft
- Öffne die URL auf dem Handy, tipp Teilen → Zum Home-Bildschirm, und folge dem PWA-Setup.
- Push aus dem Standalone-PWA aktivieren: Web Push.
- Erreich dasselbe Dashboard von Tablet, Laptop oder einem anderen Desktop — Workspace-Zustand synchronisiert in Echtzeit.
Reverse-Proxy-Fallback
Wenn Tailscale keine Option ist, tut es jeder Reverse-Proxy mit echtem TLS-Zertifikat. Die eine Sache, die du richtig machen musst, sind WebSocket-Upgrades — purplemux nutzt sie für Terminal-I/O, Status-Sync und die Live-Timeline.
Nginx (Skizze):
location / {
proxy_pass http://127.0.0.1:8022;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400;
}
Caddy ist einfacher — reverse_proxy 127.0.0.1:8022 handhabt Upgrade-Header automatisch.
Ohne Upgrade-/Connection-Forwarding rendert das Dashboard, aber Terminals verbinden sich nicht und der Status hängt fest. Wenn etwas halb-funktional wirkt, verdächtige zuerst diese Header.
Troubleshooting
- HTTPS noch nicht provisioniert — das erste Zertifikat kann eine Minute dauern. Ein erneuter
tailscale serve --bg 8022nach kurzer Wartezeit löst das meist. - Browser warnt vor Zertifikat — stell sicher, dass du genau die
<machine>.<tailnet>.ts.net-URL nutzt, nicht die LAN-IP. - Mobile sagt „nicht erreichbar" — bestätige, dass das Handy im selben Tailnet eingeloggt und Tailscale in den OS-Einstellungen aktiv ist.
- Selbstsignierte Zertifikate — Web Push registriert sich nicht. Nutz Tailscale Serve oder ein echtes ACME-ausgestelltes Zertifikat über deinen Reverse-Proxy.
Wie es weitergeht
- PWA-Setup — auf den Home-Bildschirm installieren, jetzt da du HTTPS hast.
- Web-Push-Notifications — Background-Alerts einschalten.
- Sicherheit & Auth — Passwort, Hashing und was die Tailnet-Exposition impliziert.