内容提要
rpi 是运行在本机或服务器上的编码代理,可读取项目、调用工具并修改代码;rpi-web 为其提供浏览器工作区,支持会话、文件预览和 Git diff,实际执行仍在服务端。文章介绍安装启动、模型凭据与网页密码分离、多项目管理、远程访问安全配置及会话恢复等要点,强调自托管便于远程使用,但需正确配置访问控制。
延伸解读
“随身”不等于项目同步到手机
文章强调,rpi-web 的远程使用依赖远程访问配置,浏览器只负责界面与操作,实际的项目访问和模型请求仍由服务所在机器执行。因此,手机或另一台设备只是入口,项目文件、模型凭据和会话记录仍留在开发机或服务器上。刷新或断开浏览器不会把服务端项目文件变成浏览器本地数据,读者不应把“随身”理解为项目自动同步到移动设备。
网页密码与模型凭据是两套配置
网页访问密码保护 rpi-web 页面,模型 API key 用于让 rpi 调用 Provider,二者不能混为一谈。服务进程由谁启动,就要确保它能读到对应的环境变量、认证文件和 models.json。rpi auth check 只检查本地凭据配置,不会主动发起模型请求。配置时需分别确认网页访问控制和模型调用凭据是否生效。
远程访问需同时考虑多项安全设置
默认监听地址是 127.0.0.1。远程访问至少需要一起考虑 --bind 或配置中的监听地址、allowedHosts 或 RPI_WEB_ALLOWED_HOSTS、RPI_WEB_PASSWORD、HTTPS 反向代理以及 SSE 响应缓冲设置。文章特别提醒,共享密码意味着访问者看到的是同一个服务的项目和会话,不适合直接暴露给不受信任的多人。
会话恢复依赖多层服务端数据
会话恢复并非只靠单一文件:registry 保存会话 ID、标题、置顶和归档状态;projects.json 保存通过浏览器添加的项目;native host 保存 transcript;项目源文件仍在项目目录。因此只复制 registry 文件不能恢复完整对话。升级或迁移前应同时保留项目目录、registry、session directory、rpi 配置和服务用户,重启后若会话显示 offline,需检查这些内容是否发生变化。
Q&A
rpi-web 是什么?它和 rpi 是什么关系?
rpi-web 是 rpi 的浏览器工作区,提供项目和会话侧栏、流式对话、工具交互、文件预览和 Git diff。rpi 是一个运行在本机或服务器上的 coding agent,可以读取项目目录、调用工具并修改代码。rpi-web 让用户通过浏览器访问 rpi 的功能,但实际的项目访问和模型请求仍由服务所在机器执行。
如何快速启动 rpi-web?
首先确保已安装 rpi(示例使用 0.7.0),然后运行 `rpi install rpi-web --github pi-rust/rpi-package` 安装 rpi-web(当前版本 0.1.7)。在目标项目目录中执行 `rpi --webserver=init` 初始化配置,再运行 `rpi --webserver` 启动服务。默认监听 127.0.0.1:3030。从 0.1.7 开始,`--webserver` 是首选入口,`--web` 为兼容别名。
rpi-web 的网页访问密码和模型 API key 有什么区别?如何配置?
网页访问密码用于保护 rpi-web 页面,模型 API key 用于让 rpi 调用模型 Provider,两者是独立的配置。模型 API key 通过环境变量(如 `export ANTHROPIC_API_KEY='your-api-key'`)或认证文件设置,可用 `rpi auth check` 检查本地凭据配置。网页密码通过 `RPI_WEB_PASSWORD` 环境变量或配置设置。确保服务进程能读取对应的环境变量和配置文件。
如何让 rpi-web 管理多个项目?
浏览器中的 Add project 主要管理 projectsRoot 下的目录。对于已存在但不在管理根目录内的项目,可以使用 standalone 模式启动,通过 `--project` 指定主项目,`--add-project` 添加额外项目,`--projects-root` 设置新的项目根目录。使用 native extension 时,可以将固定项目写入 `.rpi/web.json` 的 projects 数组。
远程访问 rpi-web 需要哪些安全配置?
默认监听 127.0.0.1,远程访问需配置:`--bind` 或配置文件中的监听地址;`allowedHosts` 或 `RPI_WEB_ALLOWED_HOSTS` 设置允许的主机;`RPI_WEB_PASSWORD` 设置访问密码;建议使用 HTTPS 反向代理;调整 SSE 响应缓冲设置。注意共享密码意味着所有访问者看到相同的项目和会话,不适合暴露给不受信任的多人。
rpi-web 的会话恢复依赖哪些数据?重启后会话显示 offline 怎么办?
会话恢复依赖服务端的 registry(保存会话 ID、标题、置顶和归档状态)、projects.json(保存通过浏览器添加的项目)、native host 保存的 transcript,以及项目源文件。只复制 registry 文件不能恢复完整对话。重启后若会话显示 offline,需确认服务用户、项目路径、registry 和 sessionDir 没有改变。升级或迁移前应同时保留项目目录、registry、session directory、rpi 配置和服务用户。