Document Setup Keys concept vs SSO, PAT creation and usage, and the workaround for renaming a setup key — the API silently ignores the name field on PUT, so the fix is to UPDATE store.db directly and restart netbird-server.
79 lines
2.9 KiB
Markdown
79 lines
2.9 KiB
Markdown
# NetBird Self-Hosted @ 192.168.42.127
|
||
|
||
在 Proxmox LXC (Ubuntu 24.04) 上自建 NetBird 的完整部署記錄與設定檔。
|
||
|
||
## 部署特色
|
||
|
||
- **IP-only 部署**:無需域名,純內網 LAN 使用
|
||
- **HTTP 模式**:使用 Caddy 作為反向代理統一 port 80
|
||
- **內建 IdP**:使用 NetBird Server 內建的 OAuth2(Dex),無需額外 IdP
|
||
- **LXC 相容**:使用 crun 取代 runc 繞過 Proxmox 非特權容器限制
|
||
|
||
## 文件說明
|
||
|
||
| 文件 | 用途 |
|
||
|------|------|
|
||
| [QUICKSTART.md](./QUICKSTART.md) | 快速部署步驟(適合複製貼上執行) |
|
||
| [netbird-selfhosted-setup.md](./netbird-selfhosted-setup.md) | 完整安裝指南(含原理說明) |
|
||
| [npm-grpc-fix.md](./npm-grpc-fix.md) | 透過 Nginx Proxy Manager 對外公開時的 gRPC 修復 |
|
||
| [setup-keys-and-pat.md](./setup-keys-and-pat.md) | Setup Keys 概念、PAT 用法、以及 API 無法改名的繞道做法 |
|
||
| [SUMMARY.md](./SUMMARY.md) | 部署摘要與疑難排解記錄 |
|
||
|
||
## 快速開始
|
||
|
||
```bash
|
||
# 瀏覽器開啟
|
||
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)
|
||
|
||
## 相關連結
|
||
|
||
- [NetBird 官方文件](https://docs.netbird.io/selfhosted/selfhosted-quickstart)
|
||
- [NetBird GitHub](https://github.com/netbirdio/netbird)
|
||
- [crun](https://github.com/containers/crun)
|