A self-hosted WireGuard mesh VPN
A fork of NetBird that works with NetBird clients.
An independent fork built in the open.
Setup
One server, one client per machine.
Run the server
Start the container stack.
Install the client
Install netbirdy and join with a setup key.
Set access rules
Choose which groups reach which machines.
What is in the box
Everything NetBird does, plus what the fork adds.
Mesh VPN
Devices talk directly to each other over encrypted WireGuard tunnels. No concentrator in the data path.
NAT traversal
Peers connect through NAT and firewalls without port forwarding. A relay carries traffic when no direct path exists.
Sign-in
Built-in identity service with OIDC connectors: Google, Microsoft Entra, Okta, Zitadel, Keycloak, Authentik, Pocket ID and Quad4 ID.
Access rules
Groups, policies and posture checks decide which peers reach what. Setup keys enroll servers and devices without user accounts.
Dashboard
Web UI for peers, groups, policies and DNS. Dark and light themes, a command palette and built-in help that works offline.
SSH and DNS
Built-in SSH between peers, mesh hostnames and per-domain nameserver groups.
Routing
Subnet routes through routing peers and exit nodes for full-tunnel traffic.
Reverse proxy
An identity-aware proxy in front of your services that slows or blocks scanners and AI crawlers. Supports HTTP/3.
Anomaly detection
Flags new peer locations, failed login bursts and setup key misuse. Can require approval.
Audit and SIEM
JSON audit and security logs, an optional syslog sink and a Wazuh 4.x rule pack.
Backups
Encrypted snapshots of the server database to any S3 bucket, scheduled or on demand.
Offline reconnect
Clients reconnect to peers after a restart while the server is down.
Updates
Releases are signed. The server can cache client updates and update itself with backup and rollback.
Sandboxing
Server and client restrict their own file access with Landlock on Linux.
Self-hosted
One Podman stack with optional Pocket ID and Quad4 ID profiles. Desktop app for Linux, Windows and macOS. No usage reports are sent to NetBird. Crash reports go to the project's own tracker and can be disabled.
NetBirdy and NetBird
Same protocol and clients.
| Feature | NetBirdy | NetBird |
|---|---|---|
| Usage reports to the project | Crash reports only, can be disabled | On unless disabled |
| Built-in help in the dashboard | Yes, works offline | Hosted docs site |
| Reverse proxy shield for scanners and crawlers | Yes | Not included |
| HTTP/3 on the reverse proxy | Yes | Not included |
| Sign-in and key anomaly detection | Watch or prevent | Not included |
| Clients reconnect while the server is down | Yes, with limits | No |
| Client updates cached on your server | Yes, signed | No |
| Server updates itself with backup and rollback | Optional helper | Manual |
| Hosted cloud service | No | Yes |
| Desktop and phone apps | Desktop app, NetBird phone apps | Yes |
| Commercial support | Community only | Yes |
NetBird may add features later. NetBirdy is an independent fork and is not affiliated with the NetBird company.
Install
You need Podman and make.
Start the server
git clone https://github.com/Quad4-Software/netbirdy.git
cd netbirdy
make podman-build
make podman-up
# panel at http://localhost:8080Your admin email and password are saved in podman/.env.
Connect a device
sudo netbirdy up \
--management-url http://YOUR-SERVER:8081 \
--setup-key YOUR-KEY
netbirdy statusCreate the key under Setup Keys. Get clients from releases.