跳轉到主要內容
Relay 是一個零知識房間路由器。當 PC 和配對裝置無法直連時,它們各自與 Relay 建立全雙工 WebSocket(/ws),Remote v2 的控制、RPC、事件和二進位訊框在裝置與 PC 之間以端對端加密傳輸。 Relay 不解密、授權、儲存或記錄任何業務資料,也不提供行動端 Web UI 或業務 API。
Relay 只負責轉送。想在一台伺服器上真正託管會話和 Agent,請使用自託管無頭執行環境。

快速開始

容器映像檔是多架構的(linux/amd64、linux/arm64),每次發行都會更新:
Compose 預設只發佈 127.0.0.1:9700。請保持這個預設值,讓 Caddy 或 Tailscale Serve 與它同機執行。 映像 tag 規則與無頭執行環境一致:rc 跟隨最新候選版本,latest 只指向穩定版。

端點

/api/rooms/* 是保留的相容性橋接,不是原生行動端的主要傳輸通道。
Relay 上沒有 /api/v2/info——那是權威執行環境閘道的端點。混用這兩個位址是常見的疑難排解誤區。

公用網路 HTTPS(Caddy)

將 DNS 記錄指向主機,然後啟動 Caddy profile:
Caddy 在同一個 HTTPS origin 上代理 /ws、/health 和 /api/*;根路徑和靜態資源路徑會傳回 404。用戶端會據此推導出 wss://relay.example.com/ws。

私有 Tailnet(Tailscale Serve)

使用 tailscale serve status 顯示的 HTTPS 位址作為 Relay origin。Serve 會終止 tailnet HTTPS 並代理 WebSocket 升級,兩端仍然使用 /ws。

主要限制

Relay 的所有上限都有界限,預設值如下:

零知識驗證

部署後應該能確認 Relay 確實看不到業務資料:
  1. 讓兩端經由 Relay 建立連線並完成一次業務操作(例如讀取一個會話)。
  2. 檢查 Relay 日誌,應只包含路由、計數和時序中繼資料。
  3. 確認日誌中不出現 token、配對碼、私鑰、提示詞、檔案路徑、終端機內容、Git diff、供應商設定、原始密文或 nonce。

選用推播

Relay 可以設定一個營運方自有的推播配接器,預設為關閉。相關環境變數為 VIBEX_RELAY_PUSH_PROVIDER、VIBEX_RELAY_PUSH_AUTH_TOKEN、VIBEX_RELAY_PUSH_ADAPTER_URL 和 VIBEX_RELAY_PUSH_ADAPTER_AUTH_TOKEN。

安全性建議

  • 保持 loopback 繫結,並透過受控的 HTTPS/WSS 入口或 Tailnet 發佈。
  • 不要向公用網路暴露明文 HTTP。
  • Host 和 Origin 必須獨立驗證,CORS 不得使用 *。
  • 不要把 room id 當作權限憑據。