本例部署条件
本例在同一台可达 Ubuntu / Debian 主机上运行 Server 0.4.1 与 Caddy,要求你拥有主机、防火墙及一个域名的管理权。这是配置示例;本次文档采集没有对外发布真实公网服务。
把 agent.example.com 和 203.0.113.10 替换为自己的服务域名和主机 IP,它们是保留示例值。不要借用 Rovai 官网域名,也不要修改官网 DNS 来跟随本教程。
Desktop 0.4.1 设置没有公共来源字段,本配方使用独立 Server。使用独立主机名的根路径,不是部署在 /rovai/ 子路径。
公网地址与后端地址
准备域名解析与网络入口
- 为服务主机名添加 A 记录,指向可达主机 IPv4。只有 IPv6 确实到达同一代理时才加 AAAA;错误 AAAA 会导致访问或证书验证失败。
- 在云平台与主机防火墙允许 TCP 80、443 到达 Caddy。80 用于 HTTP 跳转及证书签发。主机位于 NAT 后时需要真实可达入口;运营商级 NAT 可能无法直接托管。
- 不向公网开放 TCP 8767。本例代理与 Server 同机,后端可保持 127.0.0.1。
- 确认 80 / 443 未被其他程序占用。已有网站的主机只添加本服务配置,保留其他站点。
安装 Caddy · Ubuntu / Debian
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy使用官方软件包流程
这些命令采用 Caddy 的 Debian / Ubuntu 官方包安装方式。应用前先检查主机环境;软件包会建立 systemd 服务。已经安装 Caddy 时,沿用现有安装与配置。
Caddy 安装参考
启动仅本机可达的后端
rovai-server --data-dir "$HOME/.rovai-server" \
--listen 127.0.0.1:8767 \
--public-origin https://agent.example.com配置相同的外部来源
修改参数前先停止旧 Server,保留原 --data-dir。--public-origin 必须匹配浏览器打开的地址,包括 https 及非默认端口;它不会改变监听 socket,也不会签发证书。
Server 由拥有智能体环境的普通账号运行,Caddy 单独运行。需要后台常驻时,使用登录维护页的服务模板,并加入本 --public-origin 参数。
在 /etc/caddy/Caddyfile 添加本服务
agent.example.com {
reverse_proxy 127.0.0.1:8767 {
flush_interval -1
}
}保留认证与实时响应
回环后端使用 HTTP,公网入口使用 HTTPS。本配置保留原 Host、Origin 和 Authorization 请求头,关闭响应缓冲以便及时转发实时内容;不要缓存已认证 API 响应。
不要把 Host 改写为 127.0.0.1,不要移除 Origin / Authorization、关闭 Rovai 登录或只代理 HTML。代理整个根路径,使 API 与实时事件保持同源。DNS 与网络条件满足后,Caddy 获取并续期公网证书。
检查并重新加载配置
sudo caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile
sudo systemctl reload caddy
sudo systemctl status caddy --no-pager从外部网络登录
- 证书就绪后,在普通浏览器打开 https://agent.example.com/。若浏览器报证书错误,修复解析、签发或主机名,不要跳过警告。
- 填写 Server 数据目录对应的 Token,进入会话查看最近执行。确认主机与项目后再发小范围请求。
- HTML 能打开但登录 / 实时更新失败时,检查公共来源和代理请求头;出现 502 时,确认 Server 正在指定回环端口运行。
- 用 journalctl -u caddy 查看代理日志,同时查看 Server 的 logs/server.log。分享诊断时不要包含 Token 与私密请求内容。
关闭公网入口
- 只移除新增的 agent.example.com 配置块,检查并重新加载 Caddy,保留无关站点运行。
- 不再需要时,删除本服务 DNS 及专门添加的防火墙 / NAT 规则。单独删 DNS 会受缓存影响,应先移除代理入口。
- 若希望主机也停止处理工作,再正常停止 Server。移除代理入口本身不会停止已接收的执行。