# 验收清单 ## 部署流程 - [ ] `install.sh` 可一键完成完整部署(含租户初始化) - [ ] 新建租户模式:账号可正常登录控制台 - [ ] 迁移租户模式:使用迁移密钥(`pmk_`)完成导入,账号和应用数据完整 - [ ] 部署完成后输出端口表和 nginx 参考配置 ## 基础服务 - [ ] tenant-service 健康:`curl http://127.0.0.1:11224/actuator/health` 返回 200 - [ ] 控制台前端可访问:`curl http://127.0.0.1:11226` 返回 HTML - [ ] 运营后台可访问:`curl http://127.0.0.1:11227` 返回 HTML - [ ] 文件服务可访问:`curl http://127.0.0.1:11225/file/health` 返回正常 - [ ] 私有化模式确认:`/api/private/deployment/status` 返回 `"mode":"PRIVATE"` - [ ] 注册入口关闭:`"tenantRegisterEnabled":false` ## 可选服务 - [ ] im-service 健康:`curl http://127.0.0.1:11228/actuator/health` 返回 200 - [ ] update-service 健康:`curl http://127.0.0.1:11229/actuator/health` 返回 200 - [ ] license-service 健康:`curl http://127.0.0.1:11230/actuator/health` 返回 200 - [ ] push-service 已启动(厂商凭据按需填写) ## 中间件 - [ ] MySQL managed 模式:容器自动启动,数据目录 `data/mysql/` 持久化 - [ ] Redis managed 模式:容器自动启动,AOF 持久化 - [ ] 重启容器后数据完整 ## License - [ ] 所有应用在 `app_licenses` 表有对应记录 - [ ] `/api/license/admin/apps/:appKey` 返回 200,不出现 404 ## Nginx 配置 - [ ] 宿主机 nginx 配置后,通过外部地址可访问控制台 - [ ] `/api/im/` 路由到 im-service(11228) - [ ] `/ws/im` WebSocket 连接正常(需 `Upgrade` 头) - [ ] `/api/v1/updates/` 路由到 update-service(11229),不被 `/api/` 拦截 - [ ] `/api/license/` 路由到 license-service(11230),不被 `/api/` 拦截 - [ ] `/file/` 支持大文件上传(500MB) ## 公有化隔离 - [ ] SDK 配置不包含公有化地址 `dev.xuqinmin.com` - [ ] `config/sdk/xuqm-private-sdk.json` 中所有 URL 指向私有部署地址 - [ ] 私有化改造不影响公有化配置和部署链路