# VoiceLink 服务器迁移记录 日期:2026-09-14。新地址:https://82.157.201.114 。旧地址:https://121.41.46.238 。 ## 已迁移 - 后端部署版本:`0.91.0-rc.migrate1`,包含绑定接口同步返回 5 个火山字段的修改。 - 前端复用旧服务器已运行的 `0.90.0-rc.wechat1` 页面镜像,登录地址运行时切换为新 IP。 - PostgreSQL(schema 65)、Redis、MinIO 文件、Keycloak 登录数据以及原有平台/设备/火山/微信密钥全部保留。 - 切换前记录:6 个账号、2 位老人、8 台设备、4 条有效绑定。无进行中通话;备份在停止写入后进行,恢复后对比一致。 - 登录 issuer 和老人智能体配置中的旧地址已更新。历史健康记录和幂等请求证据保留原样。下一次聊天时,平台会通过已有智能体更新流程设置新回调地址,不重复创建智能体。 - 小程序 `C:\Users\19926\WeChatProjects\voicelink\miniprogram\config.js` 已改为新地址,未代替用户上传/发布微信小程序。 - 桌面交接设备初始化文件仅更新 origin,设备 ID 和密钥未变;没有烧录硬件。现有实物仍可通过旧 IP 转发访问。 ## 运行目录与检查 新服务器:Ubuntu 24.04、Docker 29.6.1、Compose 5.3.1。 发布目录:`/opt/data-terminal-cloud/releases/0.91.0-rc.migrate1`;`/opt/data-terminal-cloud/current` 指向此处。 日常操作使用完整组合,不要执行 seed,也不要删除卷: ```bash cd /opt/data-terminal-cloud/current docker compose -p data-terminal-cloud \ -f compose.yaml \ -f deploy/server/compose.override.yaml \ -f deploy/server/compose.subtitle.yaml \ -f deploy/server/compose.onboarding.yaml \ -f deploy/server/compose.migration.yaml \ --env-file deploy/server/.env ps ``` 仅发布 TCP 80、443;SSH 为 22。数据库、Redis、MinIO、内部 API 端口不对公网发布。 ## 备份、证书与旧地址 - 新 IP 已取得有效 HTTPS 证书;Certbot webroot 续期模拟通过,12 小时检查一次,续期后重载网关,不停机。 - `platform-backup.timer` 每日运行;新机首次加密备份与隔离数据库恢复验证成功。备份目录 `/var/backups/data-terminal-cloud`。 - `platform-health-monitor.timer` 检查服务健康。异地 OSS 备份原先未启用,迁移后仍未启用;阿里云 ECS 身份不能直接用于腾讯云主机。 - 旧服务器只运行兼容网关和 `voicelink-forward.service`。页面跳转新地址;设备、接口、回调经验证新 IP 证书的 HTTPS 转发至新服务器。内部桥接端口 18081 只绑定 Docker 私网地址,不是公网服务。 - 旧业务容器停止,旧数据和迁移备份保留。不要重启旧 API/worker 形成双写,也不要立即释放旧 IP。 - 旧机备份:`/var/backups/voicelink-migration-20260914`;新机迁移校验资料:`/root/voicelink-migration`。均包含敏感材料,仅管理员可读,不对外分享。 ## 验证范围 - 新页面、版本接口、OIDC issuer、API/callbacks/worker 就绪检查通过。 - 联调设备校时签名、平台登记、未绑定查询、未绑定聊天拒绝检查通过;没有执行新绑定或消耗火山注册额度。 - 小程序 40 项测试及原生页面检查通过。 - 未进行真机音频通话或真实微信授权登录;仍需用户在手机/设备上完成体验检查。 - MQTT、在线上报、OTA 仍是此前的待实现功能,本次迁移不会自动补齐。 回退前必须停止新机写入并同步新产生的数据;旧备份只代表切换时点,不能直接启动旧库当成无损回退。