Headscale - Tailscale Control-Server selbst hosten

Headscale - Tailscale Control-Server selbst hosten

Headscale ist eine Open-Source-Implementierung des Tailscale Control-Servers, mit der ein eigenes WireGuard-Mesh-Netzwerk ohne Cloud-Abhängigkeit betrieben werden kann.

Was ist Headscale?

Tailscale baut auf WireGuard auf und erzeugt automatisch ein verschlüsseltes Mesh-Netzwerk zwischen Geräten. Normalerweise läuft der dazu nötige Koordinationsserver bei Tailscale selbst. Headscale ersetzt diesen Server durch eine selbstgehostete Alternative und gibt damit die vollständige Kontrolle über das Netzwerk zurück. Die offizielle Tailscale-Client-Software auf den Endgeräten bleibt dabei weiterhin kompatibel — es muss lediglich die Control-Server-URL geändert werden.

Voraussetzungen

  • Docker 20.10+ / Docker Compose
  • Öffentlich erreichbare IP oder Domain (für die Clients)
  • Port 8080 (HTTP) und 3478 (STUN/UDP) müssen erreichbar sein

Compose-Beispiel

services:
  headscale:
    image: headscale/headscale:latest
    container_name: headscale
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "3478:3478/udp"
    volumes:
      - ./config:/etc/headscale
      - ./data:/var/lib/headscale
    command: serve

Hinweise

  • Eine config.yaml muss manuell unter ./config angelegt werden; das offizielle Repository enthält eine kommentierte Beispielkonfiguration.
  • Nutzer und Maschinen werden über die CLI (headscale users create, headscale nodes register) verwaltet.
  • Für eine Web-Oberfläche gibt es das Drittanbieter-Projekt „Headscale-UI", das als separater Container daneben läuft.
  • Clients verbinden sich mit tailscale up --login-server=https://deine-domain.de statt mit dem Tailscale-Cloud-Server.