Headplane¶
Web-Oberfläche zur Verwaltung von Headscale — Knoten, Benutzer, Routen und ACLs ohne CLI. GitHub
| URL | headscale.homelab-external.robinwerner.net/admin |
| Port | 3000 (containerintern) |
| Netze | proxy, internal |
| Zugriff | Gruppe hetzner-admin über Authelia |
Headplane teilt sich die Domain mit der Headscale-API und liegt unter dem
Pfad-Präfix /admin.
Nur der /admin-Router trägt die Auth-Middleware
Die Headscale-VPN-Endpunkte /key, /ts2021 und /api liegen auf
derselben Domain und bleiben bewusst ungeschützt. Würde man die Domain als
Ganzes hinter Forward-Auth legen, käme kein VPN-Client mehr durch — das
Tailscale-Protokoll kann sich an keinem Login-Portal anmelden.
Version muss zu Headscale passen¶
Headplane 0.6.1 funktioniert nicht mit Headscale v0.28
Nötig ist 0.6.2 oder neuer. Die beiden Projekte sind eng gekoppelt; ein Versionssprung bei Headscale verlangt in der Regel auch einen bei Headplane.
Fallstricke¶
Kein v-Präfix am Image-Tag
Richtig ist ghcr.io/tale/headplane:0.6.2 — nicht v0.6.2. Mit
v-Präfix existiert der Tag auf ghcr.io nicht.
Der Docker-Socket braucht das unix://-Präfix
In der Headplane-Konfiguration muss unix:///var/run/docker.sock stehen,
nicht nur der Pfad. Headplane nutzt den Socket, um den Headscale-Container
nach Konfigurationsänderungen neu zu starten.
Ein unhealthy Container ist für Traefik unsichtbar
Traefik nimmt Container ohne bestandenen Healthcheck nicht ins Routing auf
— die Folge ist ein 404, kein Fehler. Der Healthcheck ruft das Binary
/bin/hp_healthcheck auf.