Übersicht
Headscale ist die selbstgehostete Alternative zur Tailscale-Steuerungsebene. Was fehlt, ist eine bequeme Verwaltung: Alles läuft über die headscale-CLI mit ihren Subcommands, und wer nur gelegentlich einen Node registriert oder einen Pre-Auth-Key anlegt, sucht die Syntax jedes Mal neu zusammen.
Der headscale-bash-manager löst das mit einer dialog-basierten Terminal-Oberfläche, die direkt auf dem Headscale-Server läuft. Ein einziges Bash-Skript, keine Web-Komponente, kein zusätzlicher Dienst, keine offenen Ports.

Voraussetzungen
- Headscale v0.29 oder neuer
dialog(apt install dialog)python3(für das Parsen der JSON-Ausgaben)- Ein Terminal-Editor für die ACL-Bearbeitung, Standard ist
nano, über$EDITORänderbar - Für die ACL-Funktionen muss
policy.mode: filein derconfig.yamlgesetzt sein (das ist der Standard bei Headscale)
Installation
Direkt auf dem Headscale-Server:
git clone https://github.com/Garfieldttt/headscale-bash-manager.git
cd headscale-bash-manager
chmod +x headscale-manager.sh
./headscale-manager.sh
Das Skript braucht Zugriff auf den headscale-Befehl, läuft also als root oder als Benutzer mit entsprechenden Rechten.
Was das Tool kann
Nodes
Die Node-Liste zeigt ID, Online-Status, Name, Benutzer, Tailscale-IP, Last-Seen und die Anzahl der Routen auf einen Blick. Dazu kommen die üblichen Aktionen: umbenennen, ablaufen lassen (erzwingt eine Neu-Authentifizierung, der Node bleibt in der Datenbank), löschen, Tags setzen und die IP in die Zwischenablage holen.
Zwei Funktionen stechen heraus:
Node registrieren: Statt den headscale nodes register-Befehl von Hand zusammenzubauen, fügst du einfach die Register-URL oder die Auth-ID ein, die tailscale login auf dem Client anzeigt, wählst den Benutzer aus, fertig.
Routen verwalten: Verfügbare und freigegebene Routen eines Nodes erscheinen zusammen in einer Checkliste. Ankreuzen, bestätigen, erledigt. Das ersetzt das fehleranfällige Zusammensuchen von Route-IDs über mehrere CLI-Aufrufe.
Benutzer, Pre-Auth-Keys und API-Keys
Anlegen, umbenennen, löschen, ablaufen lassen, alles über Menüs. Bei Pre-Auth-Keys lassen sich Ablaufdatum, reusable und ephemeral direkt beim Erstellen setzen. Verbrauchte und abgelaufene Keys können in einem Schritt aufgeräumt werden.
ACL-Editor mit Validierung und Rollback
Der interessanteste Teil. Die Policy wird in einem echten Editor bearbeitet (nano oder $EDITOR), damit funktioniert normales Copy und Paste im Terminal. Vor dem Schreiben validiert das Tool mit headscale policy check. Schlägt die Prüfung fehl, öffnet sich der Editor erneut und springt direkt zur fehlerhaften Zeile.
Erst wenn die Policy valide ist, wird sie in die Datei geschrieben, die Headscale überwacht. Headscale lädt sie dann automatisch neu, ein Neustart ist nicht nötig.
Zusätzlich gibt es eine Versionshistorie mit Zeitstempeln: Jede angewendete Policy landet im Backup-Verzeichnis, und über das Rollback-Menü lässt sich jede frühere Version ansehen und wiederherstellen. In die Historie kommen nur Policies, die headscale policy check bestanden haben, ein kaputter Zustand wird also nie zum Rollback angeboten.
Health und Warnungen
Der Health-Bereich zeigt die Ausgabe von headscale health mit dem Status der einzelnen Checks. Beim Start weist das Tool außerdem automatisch auf Auffälligkeiten hin, etwa Nodes, die lange offline sind, oder Keys, die demnächst ablaufen.
Bedienung
Die Oberfläche unterstützt Maus-Bedienung und passt sich automatisch an die Terminal-Größe an, auch beim Verkleinern oder Vergrößern des Fensters während der Laufzeit.
Fazit
Für den täglichen Headscale-Betrieb deckt das Tool alles ab, was sonst über ein Dutzend CLI-Befehle verteilt ist, und der ACL-Workflow mit Validierung vor dem Schreiben und sauberer Rollback-Historie verhindert genau die Fehler, die einem sonst das komplette Tailnet lahmlegen. Wer Headscale betreibt, sollte einen Blick riskieren: github.com/Garfieldttt/headscale-bash-manager