Einleitung
NetBird ist eine moderne VPN-Plattform, die Zero-Trust-Prinzipien mit der Geschwindigkeit und Sicherheit von WireGuard kombiniert. Für Unternehmen, Datenschutz-Enthusiasten oder Admins mit hohem Sicherheitsanspruch bietet NetBird eine attraktive Self-Hosting-Option – ganz ohne Abhängigkeit von externen Cloud-Diensten.
In diesem Artikel zeigen wir dir Schritt für Schritt, wie du NetBird auf deinem eigenen Server installierst.
Voraussetzungen
Bevor es losgeht, stelle sicher, dass folgende Anforderungen erfüllt sind:
- Linux-Server (z. B. Debian 12, Ubuntu 22.04 o. ä.)
- Grundkenntnisse in Linux und Docker
- Eine öffentliche Domain (z. B.
vpn.meinefirma.de) - Zugang zum DNS-Management der Domain (für A-/CNAME-Records und optional ACME-DNS)
- Installiertes Docker und Docker Compose
1. Projektstruktur erstellen
Erstelle ein Verzeichnis für deine NetBird-Installation:
``bash mkdir ~/netbird && cd ~/netbird ``
Lade das offizielle docker-compose.yml von GitHub:
``bash curl -o docker-compose.yml https://raw.githubusercontent.com/netbirdio/netbird/main/docker/docker-compose.selfhost.yml ``
2. .env Datei konfigurieren
Erstelle eine .env-Datei mit deinen Einstellungen:
``bash cp env.example .env nano .env ``
Wichtige Felder:
| Variable | Beschreibung | | ---------------------- | ---------------------------------------------------------- | | NETBIRD_DOMAIN | Die öffentliche Domain, z. B. vpn.example.com | | ACME_EMAIL | Deine E-Mail für Let's Encrypt | | DNS_API_TOKEN | (Optional) Token, wenn du ACME DNS-01-Challenge nutzt | | NETBIRD_ADMIN_EMAILS | Komma-separierte Admin-E-Mails (z. B. admin@example.com) |
3. SSL-Zertifikate aktivieren (optional, aber empfohlen)
NetBird verwendet Caddy als Reverse Proxy, um automatisch HTTPS-Zertifikate von Let's Encrypt zu erhalten.
Wenn du DNS-01-Challenges verwenden möchtest (z. B. bei interner IP), brauchst du einen API-Key deines DNS-Providers. Ansonsten funktioniert auch HTTP-01, solange dein Server öffentlich erreichbar ist.
4. Container starten
Starte den NetBird-Stack:
``bash docker compose up -d ``
Schaue dir die Logs an, um sicherzustellen, dass alles korrekt läuft:
``bash docker compose logs -f ``
5. Zugriff auf das Admin-Panel
Sobald alles läuft, kannst du NetBird unter deiner Domain im Browser aufrufen:
`` https://vpn.example.com ``
Nutze die im .env eingetragenen E-Mail-Adressen, um dich als Administrator anzumelden. Der erste Login erstellt das Admin-Konto.
6. Clients verbinden
Installiere den NetBird-Agent auf einem Gerät (z. B. Linux, macOS oder Windows):
``bash curl -sSfL https://pkgs.netbird.io/install.sh | sh ``
Dann mit dem Self-Hosted-Server verbinden:
``bash netbird up --management-url https://vpn.example.com ``
Der Client sollte nun im Admin-Panel sichtbar sein und kann per ACLs verwaltet werden.
7. Optional: DNS, Gruppen, ACLs einrichten
Über das Dashboard kannst du:
- Geräte gruppieren
- ACL-Regeln festlegen (z. B. nur bestimmte Gruppen dürfen miteinander kommunizieren)
- benutzerdefinierte DNS-Zonen definieren
8. Container stoppen & aktualisieren
NetBird lässt sich leicht stoppen oder aktualisieren:
``bash docker compose down # Stoppt alles docker compose pull # Holt neue Images docker compose up -d # Startet erneut mit Updates ``
Fazit
Mit wenigen Schritten kannst du dir eine vollständig selbst gehostete VPN-Lösung aufbauen – sicher, performant und transparent. NetBird ist nicht nur eine Alternative zu klassischen VPNs, sondern ein moderner Zero-Trust-Netzwerkansatz für die Anforderungen von heute.
Links & Quellen
- Offizielle Docs: https://docs.netbird.io
- GitHub Repo: https://github.com/netbirdio/netbird
- Community: https://discord.gg/netbird