更换租户访问域名
已安装的服务器 Runtime 可以通过 sl deployment origin 更换公开 HTTPS 访问地址。在部署服务器上执行,并确保当前用户能操作 Docker 和原部署目录。该命令适用于未使用 Cloudflare Tunnel 的服务器部署,不支持本机部署或 Cloudflare Tunnel 部署。
这里修改的是 Runtime 注册的 publicOrigin,不是租户可选的“自定义域名”字段。编辑“自定义域名”不会修改部署访问地址或登录回调。
1. 准备新地址
- 将新域名解析到部署服务器,配置有效的 TLS 证书和指向现有 Runtime 的 HTTPS 反向代理。配置方法见域名与 HTTPS 准备。
- 切换成功前保留旧地址。命令会先检查新地址,再修改控制面登记。
- 新地址必须是 HTTPS Origin,只包含协议、主机和可选端口,例如
https://new-runtime.example.com,不能带路径、查询参数或片段。 - 使用具有
tenant.runtime.deployment.manage权限的租户成员账号。保留部署目录中的.env和.soln/deployment.json,CLI 会校验本次安装与登录租户一致。
先确认新地址能够访问现有 Runtime:
curl -fsS https://new-runtime.example.com/health/ready
2. 登录并更换地址
将账号、域名和部署目录替换为实际值。--base-url 使用该部署对应的控制面 API 地址:
sl deployment login --base-url https://api.solncn.com \
--tenant example --email operator@example.com --method email
sl deployment origin --dir /opt/soln-tenant-runtime \
--runtime-origin https://new-runtime.example.com
命令会更新控制面登记、部署配置中的 RUNTIME_ORIGIN 和部署状态文件,然后重建 Runtime、Worker 容器,重启部署反向代理并等待就绪。执行期间会短暂中断服务。命令不会修改 DNS、申请证书或修改外部反向代理配置。
注册的登录回调地址随之变为 https://new-runtime.example.com/auth/callback。不要用 deployment register --force 更换域名,它会更换 Agent 凭证。
3. 验证并退出登录
sl status --dir /opt/soln-tenant-runtime --check --json
curl -fsS -o /dev/null -w '%{http_code}\n' \
https://new-runtime.example.com/health/ready
sl deployment logout
runtimeReady 应为 true,健康接口应返回 200。打开新地址测试登录,控制面租户信息页的“租户访问地址”会显示更新后的地址。在停用旧域名前,更新桌面应用保存的空间地址、浏览器书签及使用绝对地址的外部集成。
如果命令提示控制面地址已保存,但本地同步失败,解决提示的问题后,用相同的新地址重跑同一条 sl deployment origin 命令,不要重新注册 Runtime。