Skip to main content
Vibex 有两种“人不在电脑前也能继续干活”的用法。先确认你要哪一种:
什么是无头运行时:可以理解成“没有窗口的 Vibex”。Agent 会话、工作区、Git、终端和供应商配置都由它负责,能力和桌面端完全一样,只是它跑在服务器上,你需要通过桌面端或手机连过去操作。它的程序名是 vibex-server。
两条路线都靠一次性配对建立信任:第一次必须在设备旁边拿到配对码或二维码;配对成功后长期凭据保存在两端,之后会自动重连,不需要反复配对。 下面的步骤假设你已经装好桌面端。Android 客户端可以从 GitHub Releases 侧载安装,iOS 目前只有模拟器构建,详见安装与平台。

一、云端开发:把 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 放在服务器上任意目录即可:
第 1 步示例只用了最必要的几个变量;完整的变量清单(包括限流、事件容量、密钥存放位置等)见环境变量参考。
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。
配对码和连接串等同于密码,只在配对时用一次。不要发到群里、Issue 或截图里。过期后可以随时在服务器上重新生成。

如果服务器在公网

公网部署只多一件事:必须用 HTTPS。让 Caddy 自动申请证书,运行时自己只监听本机回环地址:
同目录再放一个 Caddyfile:
防火墙只需要放行 80、443 和 SSH;运行时的 8765 保持在回环地址上,不要暴露到公网。把域名和地址换成你自己的之后,VIBEX_ALLOWED_HOSTS 与 VIBEX_ALLOWED_ORIGINS 必须和实际访问用的域名一致,否则请求会被直接拒绝。
不想把服务暴露在公网、又需要跨网络访问时,可以在服务器上装 Tailscale,用 tailscale serve --bg http://127.0.0.1:8765 把它发布到你的私有网络;然后把 VIBEX_DEPLOYMENT_MODE 设为 public、VIBEX_TLS_MODE 设为 trusted_https_proxy,并让 VIBEX_PUBLIC_HOST 与 VIBEX_ALLOWED_HOSTS 都填 Tailscale 给你的主机名。

第 2 步:桌面端连过去

  1. 点击标题栏的 运行时 按钮,打开运行时管理器。
  2. 点 添加运行时…,选 连接串 标签,把上面那条 vibex://pair#/code/... 整条粘贴进去,点 配对。服务器用自签证书时也走这条,因为证书指纹就在连接串里。
  3. 也可以选 配对码 标签,手动填 服务器地址 和 一次性配对码。
  4. 配对成功后,运行时的 证书 一栏会显示 sha256: 指纹,可以和服务器日志里的 tls_fingerprint 对一下。
  5. 在详情里点 切换到此运行时 切过去;从这一刻起,桌面端里的会话、文件、Git、终端都来自服务器。想回到用本机开发,在列表里选中 本机 再点 切换到此运行时。要移除这个运行时,在详情里点 移除——它只删除本机保存的设备凭据,服务器上的设备授权仍然存在,需要在那台服务器上撤销。

第 3 步:手机连过去

  1. 打开移动端,选 连接云端服务器。
  2. 填 服务器地址(例如 192.168.1.10:8765)和 配对码,点 使用配对码连接。
  3. 服务器用自签证书时,改把 vibex://pair#/code/... 连接串粘进 连接串 输入框,它会同时带上证书。
  4. 确认配对信息即可;这台设备能做什么由服务器生成配对码时决定,默认是 完全控制。想给它更小的权限,就在服务器上用 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 步:在桌面端发布远程访问

  1. 点击顶部工具栏的 配对移动设备 图标。对话框有两个标签:配对 用来发布新的配对,已配对设备 (N) 用来管理已经持有授权的设备。
  2. 选择连接方式:
    • Tailnet(推荐):通过 Tailscale 等私有网络访问,适合不在同一 Wi-Fi 的情况。
    • 自管 Direct HTTPS:你自己有一个能指向这台电脑的 HTTPS 地址。
    • 自建 Relay:手机和电脑无法直连时,通过你自建的 Relay 转发加密流量。
  3. 按界面提示填写地址(Direct HTTPS 填 https://你的地址,Relay 填 https://你的 Relay 地址),选择这台手机能做什么(默认 只读,见下面的权限级别),然后点 发布。
  4. 界面会出现二维码和配对链接:扫码即可配对,也可以 复制链接 发给手机。链接有效期很短,过期就点 重新生成。
配对链接和二维码等同于一次性密码,不要发到公开渠道。手机配对时桌面端会弹出确认,只有你确认才会成功。

第 2 步:在手机上完成配对

  • 和电脑在同一个 Wi-Fi:移动端会直接发现 nearby desktops,选中后确认即可。
  • 不在同一网络:用手机扫码,或者打开复制过来的 vibex:// 链接。
  • 也可以手动连接:在移动端选 使用配对码连接,填入桌面端显示的地址和配对码。
权限级别在桌面端发布配对时就已经选定,手机发起配对后桌面端会要求你确认;完成后手机会显示桌面端的会话列表。

第 3 步:在手机上能做什么

移动端没有配置中心,不能管理 Agent、供应商、MCP 或技能。它的设置只包含 Connection、会话 timeline、外观、Notifications 和关于。 所有写操作的真实结果始终由权威运行时产生;移动端显示的是它的投影。

直连不通时:自建 Relay

手机和电脑都可能在公司网络或运营商 NAT 后面,互相连不上。这时用一台你能访问的服务器跑 Relay,它只转发加密帧,看不到内容:
要让手机在公网用到它,需要给它一个 HTTPS/WSS 入口(例如用 Caddy 反向代理到 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。