什麼是無頭執行階段:可以理解成“沒有視窗的 Vibex”。Agent 會話、工作區、Git、終端機和供應商設定都由它負責,能力和桌面端完全一樣,只是它跑在伺服器上,你需要通過桌面端或手機連過去操作。它的程式名是
vibex-server。一、雲端開發:把 Vibex 部署到伺服器
Agent 會在伺服器上讀寫程式碼、執行命令,所以先把伺服器準備好,再用客戶端連過去。開始之前
- 一臺裝了 Docker 的 Linux 伺服器。只有你一個人用:1 核 2 GB 記憶體起步;同時跑多個 Agent:建議 2 核 4 GB 以上。
- 程式碼要能在伺服器上訪問到:在伺服器上
git clone,或者把宿主機的程式碼目錄掛進容器(下面示例用的是掛載)。 - Agent 的賬號或 API Key 等客戶端連上以後再配置:在桌面端的 配置中心 裡新增(見 配置中心),不要寫進 compose 檔案,也不要提交到倉庫。
第 1 步:啟動執行階段
專案倉庫裡已經包含一份完整的docker-compose.yml 配置檔案,可以直接檢視:deploy/server/docker-compose.yml。下面這份是按本文場景裁剪的最小示例,儲存成 docker-compose.yml 放在伺服器上任意目錄即可:
image 裡的 rc 跟隨最新候選版,latest 跟隨最新穩定版;需要固定版本時再改成具體版本號。已經克隆了倉庫時,也可以直接用倉庫裡的部署檔案從原始碼構建:docker compose -f deploy/server/docker-compose.yml up --build -d vibex-server。pairing_code=123-456-789:一次性配對碼,預設 5 分鐘後過期。pairing_link=vibex://pair#/code/...:一條配對連線串,已經包含伺服器地址、一次性配對碼和伺服器證書(DER)。複製整條即可;客戶端會在發出第一個請求前固定這張證書,所以自簽證書的伺服器不需要系統 CA。
如果伺服器在公網
公網部署只多一件事:必須用 HTTPS。讓 Caddy 自動申請證書,執行階段自己只監聽本機迴環地址:Caddyfile:
80、443 和 SSH;執行階段的 8765 保持在迴環地址上,不要暴露到公網。把域名和地址換成你自己的之後,VIBEX_ALLOWED_HOSTS 與 VIBEX_ALLOWED_ORIGINS 必須和實際訪問用的域名一致,否則請求會被直接拒絕。
第 2 步:桌面端連過去
- 點選標題欄的 執行階段 按鈕,開啟執行階段管理器。
- 點 新增執行階段…,選 連線串 標籤,把上面那條
vibex://pair#/code/...整條貼上進去,點 配對。伺服器用自簽證書時也走這條,因為證書指紋就在連線串裡。 - 也可以選 配對碼 標籤,手動填 伺服器地址 和 一次性配對碼。
- 配對成功後,執行階段的 證書 一欄會顯示
sha256:指紋,可以和伺服器日誌裡的tls_fingerprint對一下。 - 在詳情裡點 切換到此執行階段 切過去;從這一刻起,桌面端裡的會話、檔案、Git、終端機都來自伺服器。想回到用本機開發,在列表裡選中 本機 再點 切換到此執行階段。要移除這個執行階段,在詳情裡點 移除——它只刪除本機儲存的裝置憑據,伺服器上的裝置授權仍然存在,需要在那臺伺服器上撤銷。
第 3 步:手機連過去
- 開啟行動端,選 連線雲端伺服器。
- 填 伺服器地址(例如
192.168.1.10:8765)和 配對碼,點 使用配對碼連線。 - 伺服器用自簽證書時,改把
vibex://pair#/code/...連線串粘進 連線串 輸入框,它會同時帶上證書。 - 確認配對資訊即可;這臺裝置能做什麼由伺服器生成配對碼時決定,預設是 完全控制。想給它更小的權限,就在伺服器上用
docker exec vibex-server vibex-server pairing-code --permission read-only重新生成一個配對碼(可選read-only、approve-only、full-control)。
第 4 步:讓 Agent 看到你的程式碼
Agent 在伺服器上執行,它只能看到伺服器(容器)裡的目錄。所以程式碼必須放在伺服器上:- 在伺服器上
git clone到/data/repos/你的專案;或者 - 在 compose 裡把宿主目錄掛進容器(示例中的
- /srv/repos:/data/repos)。
VIBEX_WORKSPACE_ROOTS 裡(示例中的 /data:/data/repos)。回到客戶端:新建會話 → 專案目錄 → 選擇其他目錄,你會看到 /data 和 /data/repos 兩個位置,進去選中專案即可。
只掛載、不加進
VIBEX_WORKSPACE_ROOTS,客戶端瀏覽不到那個目錄;只加進 VIBEX_WORKSPACE_ROOTS、不掛載,執行階段裡也沒有這個路徑。第 5 步:日常維護
二、遠端開發:手機連你自己的桌面端
這條路線的權威仍然是你的電腦:Agent、檔案、Git、終端機都在桌面端上跑,手機只是拿到一個可以檢視和操作的視窗。適合“人在外面,想看一眼進度、回一句話、批一個權限”。開始之前
- 桌面端正在執行,電腦保持開機(睡眠會導致連線斷開)。
- 手機和電腦網路可達:同一個 Wi-Fi 最簡單;不在同一網路時用 Tailnet 或自建 Relay。
第 1 步:在桌面端釋出遠端訪問
- 點選頂部工具欄的 配對移動裝置 圖示。對話方塊有兩個標籤:配對 用來發布新的配對,已配對裝置 (N) 用來管理已經持有授權的裝置。
- 選擇連線方式:
- Tailnet(推薦):通過 Tailscale 等私有網路訪問,適合不在同一 Wi-Fi 的情況。
- 自管 Direct HTTPS:你自己有一個能指向這臺電腦的 HTTPS 地址。
- 自建 Relay:手機和電腦無法直連時,通過你自建的 Relay 轉發加密流量。
- 按介面提示填寫地址(Direct HTTPS 填
https://你的地址,Relay 填https://你的 Relay 地址),選擇這臺手機能做什麼(預設 只讀,見下面的權限級別),然後點 釋出。 - 介面會出現二維碼和配對連結:掃碼即可配對,也可以 複製連結 發給手機。連結有效期很短,過期就點 重新生成。
第 2 步:在手機上完成配對
- 和電腦在同一個 Wi-Fi:行動端會直接發現 nearby desktops,選中後確認即可。
- 不在同一網路:用手機掃碼,或者打開復制過來的
vibex://連結。 - 也可以手動連線:在行動端選 使用配對碼連線,填入桌面端顯示的地址和配對碼。
第 3 步:在手機上能做什麼
行動端沒有配置中心,不能管理 Agent、供應商、MCP 或 Skill。它的設定只包含 Connection、會話 timeline、外觀、Notifications 和關於。
所有寫操作的真實結果始終由權威執行階段產生;行動端顯示的是它的投影。
執行階段切換與恢復
行動端的首屏把配對和執行階段切換合在一起:列出已儲存的執行階段及其可達性,選一個即可連線;配對入口在同一個頁面裡以 sheet 開啟。- 恢復連線失敗時會回到配對頁,不會卡在空白連線頁。
- 斷連時已儲存的執行階段仍然保留;下次回到前臺會自動重試。
- 配對後客戶端不會退出;可以在已儲存的執行階段之間切換。
- 移除一個執行階段只刪除本機憑據,不會撤銷伺服器或桌面端上的裝置授權。
直連不通時:自建 Relay
手機和電腦都可能在公司網路或運營商 NAT 後面,互相連不上。這時用一臺你能訪問的伺服器跑 Relay,它只轉發加密幀,看不到內容:127.0.0.1:9700),然後在桌面端釋出遠端訪問時選 自建 Relay,填入 https://你的 Relay 域名。
Relay 是純轉發的:它不儲存你的會話、檔案或供應商設定,也不解密內容。它在記憶體裡維護房間和連線,重啟後房間會消失,裝置重連時會自動重建。
斷線與重連
網路切換、鎖屏或應用回到前臺後,客戶端會重新認證並補齊缺失的歷史:先顯示權威的會話和時間線狀態,再恢復即時更新。權限級別
配對時給行動端選權限,按需要最小授權。級別由發起端在建立配對時決定,客戶端無法自行提權:
撤銷裝置在權威端完成:
- 桌面端作為權威端時,開啟 配對移動裝置,切到 已配對裝置 (N) 標籤,找到那臺裝置點 撤銷 並確認。列表顯示每臺裝置的狀態、權限和最後活動時間,可以 重新整理裝置 重新載入;裝置多於六臺時分頁顯示。
- 無頭執行階段作為權威端時,在伺服器上執行
docker exec vibex-server vibex-server revoke DEVICE_ID(或直接執行vibex-server revoke DEVICE_ID)。
安全清單
- 執行階段的
8765埠只在本機或內網開放;公網訪問必須走 HTTPS。權威端預設只監聽 loopback,不要使用未認證的公網監聽。 - 權限給最小的一檔,只在需要時才用 完全控制。
- 配對碼、二維碼和連線串不要發到公開渠道;它們用過一次就失效,也不要當作長期憑據。
- 定期撤銷不用的裝置。
- Relay 只轉發加密流量,不要把它當成權限邊界,也不要在它的日誌裡放業務資料。
遇到問題先看這裡
環境變數
上面示例只用了最必要的變數。vibex-server、Relay 和桌面端的完整變數清單、預設值與用途見環境變數參考;部署形態、命令與健康檢查見自託管無頭執行階段,Relay 的端點、限制與推送配置見自託管 Relay。
需要更底層的細節(配對握手、加密、同步契約)時,閱讀開發者指南中的 Remote v2 與 Relay。