跳轉到主要內容
vibex-server 是 Vibex 的無頭權威執行階段。它和桌面端內嵌的執行階段是同一套 DesktopRuntime 核心,只是換成守護程序的形態:桌面端多一個 GPUI 視窗,服務端多一套守護程序生命週期。兩者對外暴露完全相同的 Remote v2 閘道器,所以配對後的行動端分辨不出自己連的是哪一種。
vibex-server 是單使用者執行階段:它擁有一個 Vibex home、一個數據庫和一個閘道器,不是多租戶服務。主機管理員就是使用者。

什麼時候用它

  • 想讓會話和 Agent 常駐在一臺伺服器上,筆記本關機也不中斷。
  • 想在桌面端和手機之間共享同一批會話、工作區和憑據。
  • 團隊裡有一臺常開的開發機,希望從任意裝置接入。
只需要轉發流量、不需要託管執行階段的話,用 Relay 就夠了。

快速開始

容器映象是多架構的(linux/amd64、linux/arm64),每個釋出都會更新:
映象 tag 規則:rc 跟隨最新的候選版本,latest 只指向穩定版,edge 和 sha-<commit> 跟隨預設分支。 啟動日誌會列印 server_id、endpoint、一次性 pairing_code(形如 NNN-NNN-NNN)、pairing_link、tls_fingerprint,以及一段二維碼。把它們交給客戶端去配對,見遠端訪問與行動端。 需要新的配對碼時隨時重新生成:

命令

不帶引數等同於 serve。--permission 接受 read-only、approve-only、full-control(預設 full-control)。status --json 適合指令碼和容器健康檢查;stop 只停止這個 home 的執行階段,不會刪除資料。 容器裡也可以直接使用 TUI:
TUI 與桌面端、行動端是同一類客戶端:它連線這個執行階段,讀取同一批會話,不會在容器裡再啟動一個後端。詳見 Vibex TUI。

部署形態

只監聽本機(預設)

預設繫結 127.0.0.1:8765,不對外發布任何埠。適合先用 SSH 隧道或反向代理把流量引進來。

區域網:自簽證書 + 指紋固定

沒有域名和 CA 的場景(家用或辦公室區域網),執行階段提供自己簽發的證書,客戶端從連線串裡學到這張證書並固定它——信任來自連線串本身,而不是網路。
  • VIBEX_PUBLIC_HOST 必須是客戶端實際撥號的地址,含埠,並且是數值型區域網地址(192.168.x.x、10.x.x.x、172.16–31.x.x,或鏈路本地 / 唯一本地 IPv6)。
  • 證書在整個執行階段身份生命週期內保持不變,重啟容器不需要重新配對。刪除 /data 才會失效。
  • pinned_certificate 真的在閘道器上終止 TLS,監聽口從來不是明文。沒有指紋的客戶端根本連不上。

公網 HTTPS

公網暴露需要 VIBEX_DEPLOYMENT_MODE=public,並選擇一種 TLS 策略: 反向代理終止 TLS:
只有在 trusted_https_proxy 模式下才能開啟 VIBEX_TRUST_FORWARDED_HEADERS,其它模式會拒絕轉發頭。 閘道器自己終止 TLS: 設定 VIBEX_TLS_MODE=server_certificate,並把 VIBEX_TLS_CERT_FILE / VIBEX_TLS_KEY_FILE(PEM)掛進容器。
閘道器會在啟動時校驗配置組合:Public 監聽缺少可信 TLS、VIBEX_ALLOWED_HOSTS 裡出現 loopback、或在非可信代理模式下信任轉發頭,都會拒絕啟動。這是有意設計的,避免配置錯誤悄悄退化成未認證的公網服務。

systemd(不用 Docker)

倉庫提供了一份加固過的 unit 檔案,直接以宿主機程序執行,環境變數契約相同:
狀態目錄預設為 /var/lib/vibex-server,詳見倉庫 deploy/server/systemd.md。

環境變數

完整清單與預設值見環境變數參考。最常用的幾個:
VIBEX_WORKSPACE_ROOTS 的每一項都必須是絕對路徑;掛載點暫時不存在時它只是匹配不到東西,不會報錯。

憑據儲存

提供商 API Key 存在伺服器主機上,絕不進資料庫,也絕不返回給客戶端。 桌面端會把金鑰寫入作業系統鑰匙串。無頭伺服器通常沒有可用的鑰匙串(預設容器 seccomp 配置會拒絕 Linux 鑰匙串後端所需的 keyutils 系統呼叫),因此它改為寫入執行階段 home 裡的 provider-secrets.json,權限為僅屬主可讀(0600)。這是自託管的明確取捨:主機管理員就是使用者。
閘道器不記錄金鑰、配對碼或認證令牌;憑據值寫入後只寫不讀,不會再返回給任何客戶端。

安全建議

  1. 保持 loopback 預設值,再用 Tailscale Serve 或受控反向代理釋出。
  2. 公網部署必須配置 VIBEX_ALLOWED_HOSTS(精確主機名,否則返回 421)和 VIBEX_ALLOWED_ORIGINS(否則返回 403)。原生客戶端不傳送 Origin,不受影響。
  3. 用 vibex-server status 定期檢查已配對裝置,用 revoke 及時清理。
  4. VIBEX_WORKSPACE_ROOTS 只列真正需要的目錄。
  5. 閘道器只暴露協議與健康檢查端點,不提供瀏覽器 UI,也不提供業務 API。

健康檢查

/health 和 /api/info 屬於 Relay;無頭執行階段的資訊端點是 /api/v2/info。