XuqmGroup-PrivateDeploy/docs/deployment-defaults.md
徐勤民 aa5bccae11 feat(deploy): 完成私有化部署全流程验收
- 更新部署进度文档,标记P5-02/P5-03为已完成状态
- 修复中文乱码问题,MySQL数据层使用UNHEX函数配合nginx字符集设置
- 配置im-service和update-service的内部服务URL,从127.0.0.1改为Docker服务名
- 实现全功能验收,nginx为所有服务添加路由映射并返回正确的状态码
- 创建私有化部署默认信息文档,记录完整的部署配置和访问地址
- 添加部署清理脚本clean.sh,支持一键清理容器、配置和数据目录
- 更新敏感配置模板,添加详细的密码和密钥配置说明
- 优化前端实时消息轮询机制,通过WebSocket心跳检测决定是否启用HTTP轮询回退
2026-05-19 19:23:28 +08:00

6.2 KiB

私有化部署默认信息

本文档记录数字医信私有化部署的默认配置,供运维和对接人员参考。


部署信息

项目
部署版本 2026.05.19-private.1
部署主机 192.168.116.9
部署目录 /opt/xuqm-private
部署时间 2026-05-19

访问地址

功能 地址
控制台(租户登录) http://192.168.116.9
运营后台 http://192.168.116.9/ops
文档站 http://192.168.116.9/docs/
API 入口 http://192.168.116.9/api/
Actuator 健康 http://192.168.116.9/actuator/health

说明:采用纯 IP 部署,无需配置域名。局域网内任意机器均可通过上述地址访问完整功能。


租户信息

项目
租户名称 数字医信
登录邮箱 szyx@bjca.org.cn
登录用户名 szyx
初始密码 与公有化平台相同(迁移时未重置)
迁移来源 公有化平台39.107.53.187

应用列表

应用名称 App Key
医网信 ak_c6fce237cae94ef5ab71fda6
临床知识库 ak_1178fd37b8f54cefb7031744

服务列表和端口

对外服务(通过 nginx 统一入口)

服务名 内部端口 nginx 路由路径 说明
tenant-service 9001 /api/* /actuator/* 核心 API,认证、租户、SDK 配置
file-service 8086 /file/* 文件上传下载,最大 500MB
im-service 8082 /api/im/* /ws/im/* IM HTTP API 和 WebSocket
update-service 8084 /api/v1/updates/* /api/v1/rn/* APP 版本管理和 RN 热更新
license-service 8085 内部调用 License 有效期校验
push-service 8083 内部调用 厂商推送通知
docs-site 80 /docs/* 私有化 SDK 文档站
ops-web 80 /ops 运营后台前端
tenant-web 80 / 控制台前端(兜底路由)

基础设施Docker 内部,不对外暴露)

服务名 内部端口 模式 说明
mysql 3306 managed MySQL 8.4,Docker 容器托管
redis 6379 managed Redis 7.4,AOF 持久化

Docker Compose Profiles

Profile 包含服务 说明
base tenant-service, file-service, tenant-web, ops-web, docs-site, nginx 必选核心服务
infra-mysql mysql 托管数据库MYSQL_MODE=managed 时启用)
infra-redis redis 托管缓存REDIS_MODE=managed 时启用)
im im-service IM 服务(可选)
push push-service 推送服务(可选)
update update-service 版本管理服务(可选)
license license-service License 服务(可选)

当前启用的 Profilesbase,infra-mysql,infra-redis,im,push,update,license(全量部署)


数据库

项目
主机 mysqlDocker 服务名)
端口 3306
数据库名 xuqm_private
业务账号 xuqm
业务密码 XuqmMysql@2026
Root 密码 XuqmRoot@2026
字符集 utf8mb4 / utf8mb4_unicode_ci
时区 +08:00

Redis

项目
主机 redisDocker 服务名)
端口 6379
数据库 0
密码 XuqmRedis@2026
持久化 AOFappendonly yes

数据目录

路径 说明
./data/mysql/ MySQL 数据文件(重启后保留)
./data/redis/ Redis AOF 文件(重启后保留)
./data/uploads/ 文件服务上传目录
./data/update/ 版本管理包存储目录
./data/backups/ 迁移备份
./logs/ 审计日志
./.deploy-state/ 部署状态和验证结果

配置文件清单

文件 说明
.env 主配置文件COMPOSE_PROFILES、域名、功能开关
config/secrets.env 敏感凭据chmod 600
config/xuqm.env 业务服务容器内配置
config/tenant/bootstrap.env 初始租户配置(迁移后由真实数据替换)
config/nginx/conf.d/xuqm.conf Nginx 路由配置
config/sdk/xuqm-private-sdk.json SDK 初始化配置文件
config/docs/docs-runtime.json 文档站运行时配置
config/vendors/push.env 推送厂商凭据(默认全部关闭)
config/vendors/store-submit.env 应用市场发布凭据(默认全部关闭)
config/mail/smtp.env 邮件服务配置

常用运维命令

# 进入部署目录
cd /opt/xuqm-private

# 查看所有容器状态
docker compose -f docker-compose.yml -f docker-compose.infra.yml ps

# 查看某个服务日志
docker compose -f docker-compose.yml -f docker-compose.infra.yml logs --tail 100 tenant-service

# 运行一键验证
bash scripts/verify.sh

# 重新部署(幂等)
DEPLOY_HOST=192.168.116.9 bash scripts/deploy-szyx.sh

# 手动迁移租户
bash scripts/migrate-tenant.sh \
  --src-host 39.107.53.187 \
  --src-user xuqm \
  --src-password Xuqm@2026 \
  --src-db xuqm_tenant \
  --tenant szyx@bjca.org.cn

# 停止所有服务(保留数据)
docker compose -f docker-compose.yml -f docker-compose.infra.yml down

# 停止并清除所有数据(!不可恢复)
docker compose -f docker-compose.yml -f docker-compose.infra.yml down -v

验证结果

验证报告保存在 .deploy-state/last-verify.json,包含所有检查项的 PASS / WARN / FAIL 状态。

详细验证步骤见 docs/acceptance-checklist.md


注意事项

  1. 注册功能已禁用TENANT_REGISTER_ENABLED=false,任何人都无法自行注册账号,只能用迁移的账号登录。
  2. 纯 IP 部署:所有服务通过 http://192.168.116.9 访问,如需 HTTPS,请配置 SSL 证书并修改 nginx 配置(见 docs/runbook.md)。
  3. 数据持久化MySQL 和 Redis 数据存储在宿主机 ./data/ 目录,容器重启不丢失。重装需手动清除。
  4. 推送服务push-service 已启动,但各厂商推送默认关闭,需在 config/vendors/push.env 填写凭据并重启。
  5. 中文字符集:所有服务使用 utf8mb4,JDBC 连接串包含 characterEncoding=UTF-8,中文数据正常存储。