← Zurück zum Blog

NetBird-Migration: Alle Container im Mesh, Caddy in Rente

NetBird-Migration: Alle Container im Mesh, Caddy in Rente

Seit einiger Zeit hatte ich Caddy als Reverse-Proxy vor meinen internen Diensten stehen – ein bewährtes Setup mit Tailscale/Headscale, das im Artikel beschrieben ist. Dienst im Tailnet, Caddy als öffentlicher Endpunkt, TLS automatisch. Das funktionierte gut.

Aber Caddy war ein zusätzlicher Baustein – ein weiterer Container, eine weitere Konfiguration. Und bei Tailscale/Headscale fehlte eines: Ein integriertes Reverse Proxy. NetBird bringt das mit, und es ist vollständig open source und selbst hostbar – jeder einzelne Bestandteil: Server, Management, Client, Reverse Proxy.

Jetzt ist alles anders: **Alle Container und VMs sind im NetBird-Mesh, Caddy ist abgeschaltet.**

Das alte Setup: Caddy als Zwischenschicht

Vorher sah mein Netzwerk so aus:

Internet
  │
  ▼
Caddy (VPS, öffentlich)
  │
  ├── tailscale ──▶ HomeAssistant (Incus)
  ├── tailscale ──▶ Immich (Incus)
  ├── tailscale ──▶ Paperless (Incus)
  └── tailscale ──▶ ... (10 weitere)

Jeder Service brauchte einen Caddy-Eintrag. Die Tailnet-Adressen mussten aufgelöst werden, DNS-Konflikte mit Incus wurden zum Dauerthema.

Das neue Setup: NetBird als alleiniges Netzwerk

Mit NetBird gibt es keine Zwischenschicht mehr:

Internet
  │
  ▼
NetBird (Traefik, integriert)
  │
  ├── Incus: HomeAssistant (NetBird-Client)
  ├── Incus: Immich (NetBird-Client)
  ├── Incus: Paperless (NetBird-Client)
  ├── Incus: Restic (NetBird-Client)
  ├── VM: Mailcow (NetBird-Client)
  └── ... (alles im Mesh)

Jeder Container und jede VM hat einen NetBird-Client und ist direkt im Mesh erreichbar. Kein Caddy mehr dazwischen.

Warum NetBird?

Open Source – komplett

NetBird steht unter BSD-3-Lizenz. Aber nicht nur der Server-Teil, sondern der gesamte Stack:

  • Management Server – selbst hostbar, inklusive Web-UI
  • Signal Server – für die Verbindungskoordination
  • TURN/Relay Server – für NAT-Traversal
  • Client – open source, auf allen Plattformen
  • Reverse Proxy – integriert, auf Traefik-Basis

Kein proprietärer Client, kein SaaS-Service, kein Unknown Binary im Hintergrund. Wer NetBird betreibt, kontrolliert jeden Bestandteil. Das ist der fundamentale Unterschied zu Tailscale, wo der Client source-available ist, aber der Koordinationsserver bei Tailscale läuft.

Integriertes Reverse Proxy mit Traefik

NetBird bringt seit v0.65 ein integriertes Reverse Proxy mit – intern basierend auf Traefik. Das bedeutet:

  • Kein zusätzlicher Container mehr für Caddy
  • Automatische Service Discovery im Mesh
  • TLS automatisch über Let's Encrypt
  • One-Stop-Shop: Netzwerk + Proxy in einem

Die Konfiguration läuft über das NetBird-UI oder die API. Einen Dienst erreichbar machen heißt: NetBird-Client installieren, Route im UI anlegen, fertig.

Kein DNS-Fight mehr

Das größte Problem mit Caddy + Tailscale in Incus war der DNS-Konflikt. Incus-Managed-Netzwerke überschreiben /etc/resolv.conf, die Magic-DNS-Auflösung geht verloren, Caddy findet die Tailnet-Adressen nicht mehr.

NetBird löst das anders: Die Adressen sind stabil, das Mesh kümmert sich um die Zuordnung. Kein DNS, das überschrieben wird, keine conf-Dateien, die manuell gepflegt werden müssen.

Alles im Mesh

Der entscheidende Unterschied: Alle Container und VMs sind im NetBird-Mesh. NetBird-Client läuft in jeder Instanz als Service, automatisch beim Boot.

Was hat das gekostet?

Nicht viel – NetBird ist kostenlos und open source. Der Aufwand lag in der Migration:

Schritt Aufwand
NetBird-Server aufsetzen ~30 Min
Client in alle Container ~5 Min pro Instanz
Routes im UI konfigurieren ~2 Min pro Dienst
Caddy abschalten 1 Minute
TLS-Zertifikate prüfen Automatisch

Insgesamt ein Nachmittag. Der längste Teil war, in allen bestehenden Instanzen den NetBird-Client nachzurüsten.

Was ich vermisse

Ehrlichkeitshalber: Caddy war einfacher für Simple-Fälle. Ein Caddyfile mit fünf Zeilen und los. NetBird braucht etwas mehr Konfiguration – Client installieren, Auth-Key generieren, Route anlegen.

Aber: Einmal eingerichtet, ist NetBird wartungsärmer. Kein Caddy-Update, kein DNS-Tuning, keine Incus-Konflikte.

Fazit

Caddy war ein guter Begleiter – schlank, zuverlässig, einfach. Aber NetBird macht ihn im eigenen Setup überflüssig. Wer sein Netzwerk ohnehin mit einem Mesh-VPN betreibt, braucht keinen separaten Reverse-Proxy mehr. NetBird übernimmt beides.

Und das Wichtigste: Es ist **komplett open source und selbst hostbar**. Kein SaaS, kein proprietärer Client, kein unknown binary. Jeder Bestandteil gehört mir.

Caddy geht in Rente. Nicht weil es schlecht ist, sondern weil es nicht mehr gebraucht wird.