NetBird is a WireGuard-based mesh VPN. Every device you want to access the home or farm LAN from joins a peer-to-peer mesh. Once connected:
- Clean URLs:
https://immich.edmd.me,https://portainer.edmd.me, etc. - Real HTTPS (wildcard
*.edmd.mecert from Let’s Encrypt) - Works from anywhere — home wifi, LTE, hotel, anywhere
- No split-tunnel issues: the mesh only routes mesh-specific traffic
Laptop (anywhere) → WireGuard → [P2P direct OR relayed]
↓
hpve peer (Proxmox at 192.168.8.221)
↓ (LAN)
CT103 Caddy (192.168.8.54)
↓ (wildcard HTTPS + reverse proxy)
Services on CT100 (192.168.8.100), CT101, etc.
The magic: DNS for *.edmd.me resolves to 192.168.8.54 (CT103). Your device reaches 192.168.8.54 through the NetBird mesh. Caddy on CT103 looks at the Host header and proxies to the right backend.
8 peers as of May 2026 (verified against netbird.list_peers):
| Peer | NetBird IP | LAN IP | Routes | Role |
|---|---|---|---|---|
| hpve | 100.123.31.199 | 192.168.8.221 | 192.168.8.0/24 |
Home Proxmox — subnet router for home LAN |
| fpve | 100.123.49.175 | 192.168.0.191 | 192.168.0.0/24 |
Farm Proxmox — subnet router for farm LAN (currently unreachable) |
| vps | 100.123.69.155 | 172.93.50.184 | — | Public VPS (edge01) — Bee Hub mirror, SMB share at files.edmd.me |
| studio | 100.123.217.253 | 192.168.8.180 | — | Mac Studio |
| macbook | 100.123.191.145 | 192.168.8.218 | — | MacBook (parity sync with Studio) |
| iphone | varies | — | — | iPhone, always-on NetBird |
| ipad | varies | — | — | iPad |
| roon | 100.123.169.114 | 192.168.8.105 | — | CT105 Roon Server — Roon ARC remote streaming |
Because hpve and fpve are subnet routers, any peer with the right route enabled reaches both LANs through them — you don’t need a peer on each LAN, just the mesh.
Add more peers in the NetBird dashboard. For details on per-peer setup, group membership, and routing, see NetBird Reference.
- Install the NetBird client — netbird.io/download for Mac/Windows/Linux, App Store for iOS/Android
- Sign in with the same account that owns the existing peers
- On the laptop:
netbird up(Mac/Linux) or click Connect in the tray app - Verify:
curl -s https://hub.edmd.me/ | head— should return Bee Hub HTML
That’s it. DNS, routing, and certs are all automatic — Pi-hole serves the right addresses, Caddy serves the right certs.
Once connected, use any of the 41 HTTPS URLs at *.edmd.me:
Media & Arr: plex · calibre · lidarr · sonarr · radarr · prowlarr · bookshelf · audiobookshelf · navidrome · kiwix
Automation & Monitoring: n8n · kuma · gotify · grafana · prometheus · dozzle
Reading & Content: freshrss · wallabag · immich · shelfmark · aurral
Utilities: homepage · convertx · flaresolverr
Infrastructure Admin: portainer · proxmox · cockpit · pihole
This site: hub
See the Caddy page for the full catalog with aliases.
- Install the NetBird app from App Store or Play Store
- Sign in with your NetBird account
- Tap Connect
Same URLs work from mobile. For Navidrome in Subsonic-compatible music apps (Amperfy, play:Sub, iSub):
| Field | Value |
|---|---|
| Server URL | https://navidrome.edmd.me |
| Username | your Navidrome login |
| Password | your Navidrome password |
NetBird advertises LAN routes (192.168.8.0/24) to peers. Unlike Pangolin, this works transparently whether you’re at home or not — packets to the LAN stay on the LAN when possible, and tunnel through when remote.
You can leave NetBird connected all the time on your laptop, phone, iPad. It won’t interfere with local networking.
| Scenario | Expected latency |
|---|---|
| At home on LAN, direct | <5ms |
| At home via NetBird (going through mesh) | 1-3ms added |
| Off-LAN, P2P over IPv4 | ~50-100ms |
| Off-LAN, P2P over IPv6 | ~40-80ms (better) |
| Off-LAN, relayed | ~80-150ms |
To force P2P (avoid relays): enable IPv6 on both ends, or port forward UDP 51820 on the home router to Proxmox.
| Problem | Fix |
|---|---|
| URL returns “Not configured” 404 | That subdomain isn’t in Caddy’s Caddyfile. Check @matcher entries on CT103 |
| URL returns Cloudflare error | DNS record might be proxied (orange cloud). Should be DNS-only (gray cloud) since 192.168.8.54 is private |
| Connection timeout | NetBird client not connected. Check tray/menu status |
| Slow interactive (SSH lag) | Connection is relayed. Enable IPv6 on routers or port forward WireGuard to force P2P |
| Cert error in browser | Should never happen — Let’s Encrypt wildcard covers every *.edmd.me name |