Files
netbird-selfhosted/README.md
timmy 655f07a198 docs: add NPM gRPC fix for external HTTPS exposure
Document the fix for 'server closed the stream without sending trailers'
gRPC error when exposing NetBird via Nginx Proxy Manager:
- NPM proxy_host advanced_config with grpc_pass for Signal/Management
- Caddy h2c listener enabled via 'protocols h1 h2 h2c'
2026-04-18 09:23:23 +08:00

2.8 KiB
Raw Blame History

NetBird Self-Hosted @ 192.168.42.127

在 Proxmox LXC (Ubuntu 24.04) 上自建 NetBird 的完整部署記錄與設定檔。

🎯 部署特色

  • IP-only 部署:無需域名,純內網 LAN 使用
  • HTTP 模式:使用 Caddy 作為反向代理統一 port 80
  • 內建 IdP:使用 NetBird Server 內建的 OAuth2Dex無需額外 IdP
  • LXC 相容:使用 crun 取代 runc 繞過 Proxmox 非特權容器限制

📁 文件說明

文件 用途
QUICKSTART.md 快速部署步驟(適合複製貼上執行)
netbird-selfhosted-setup.md 完整安裝指南(含原理說明)
npm-grpc-fix.md 透過 Nginx Proxy Manager 對外公開時的 gRPC 修復
SUMMARY.md 部署摘要與疑難排解記錄

🚀 快速開始

# 瀏覽器開啟
open http://192.168.42.127

# 客戶端連線
netbird up --management-url http://192.168.42.127

🏗️ 架構

           ┌───────────────────────┐
           │    192.168.42.127     │
           │                       │
  :80 ────▶│  Caddy (反向代理)     │
           │    ├── /           ──▶│──▶ dashboard  (Web UI)
           │    ├── /api/*      ──▶│──▶ netbird-server
           │    ├── /oauth2/*   ──▶│──▶ netbird-server
           │    ├── /relay*     ──▶│──▶ netbird-server
           │    └── gRPC        ──▶│──▶ netbird-server
 :3478/udp ────────────────────────│──▶ netbird-server (STUN)
           └───────────────────────┘

🔧 環境

項目
主機 192.168.42.127
系統 Ubuntu 24.04 LTS
容器類型 Proxmox LXC (非特權)
Docker 29.4.0
OCI Runtime crun 1.20
設定目錄 /opt/netbird/

📦 服務清單

容器 映像 用途
netbird-caddy caddy:2 反向代理 (:80)
netbird-dashboard netbirdio/dashboard:latest Web 管理介面
netbird-server netbirdio/netbird-server:latest 管理 + Signal + Relay + STUN + IdP

⚠️ 注意事項

  • 無 TLS:僅適合內網,勿暴露至公網
  • 無域名:使用 IP 作為 issuer若 IP 變更需重建
  • LXC 限制:必須使用 crun不可使用預設 runc
  • 首次啟動慢:需下載 GeoLite2 資料庫(約 60MB

🔗 相關連結