// VERIFICATION FACTOR 2 OF 7

◈ Netbird Mesh

All SNO traffic routes through a self-hosted WireGuard mesh VPN. If you are not connected to the Netbird mesh, no SNO service is reachable — the network layer blocks access before authentication is even attempted.

✓
CONNECTED
Source IP: 100.64.1.2 · WireGuard P2P · 4 peers online
HOW IT WORKS
Netbird creates encrypted WireGuard tunnels between all your devices. The control plane runs on your Raspberry Pi behind Starlink. No traffic passes through any cloud server — peers connect directly (P2P) or via your self-hosted relay.
Why Netbird over Tailscale? Netbird is fully self-hosted — you own the control plane. It supports geo/location policies, device posture checks, and integrates natively with your Keycloak identity provider. Tailscale's coordination server is in the cloud.
INSTALLATION
1

Deploy Netbird (Docker)

Add the four Netbird services to your docker-compose.yml: netbird-management, netbird-signal, netbird-relay, and coturn. The provided SNO compose file has these pre-configured.

2

Connect Keycloak OIDC

In the Netbird management config (netbird/management.json), set the OIDC endpoint to your Keycloak realm: http://keycloak:8080/realms/secure-os/.well-known/openid-configuration

3

Install client on each device

macOS: brew install netbird-io/netbird/netbird
iOS/Android: Netbird app from App/Play Store
Linux: curl -fsSL https://pkgs.netbird.io/install.sh | sh

4

Connect and enrol

Run netbird up --management-url http://your-rpi-ip:33073. Browser opens → login with Keycloak → YubiKey touch → device enrolled in mesh.

5

Generate Personal Access Token

Dashboard → Users → Me → Access Tokens → Generate. Copy token to NETBIRD_TOKEN in your .env file. Restart FastAPI container to pick it up.

6

Set access policy

Dashboard → Access Control → Policies → Add. Require YubiKey-verified identity. Optionally restrict to Starlink IP range. All resources should be in a group only accessible from the mesh.

ENROLLED PEERS
⏳ Run check to verify current status
SETUP LINKS