# 私有化部署默认信息 本文档记录数字医信私有化部署的默认配置,供运维和对接人员参考。 --- ## 部署信息 | 项目 | 值 | |------|-----| | 部署版本 | 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 服务(可选) | **当前启用的 Profiles**:`base,infra-mysql,infra-redis,im,push,update,license`(全量部署) --- ## 数据库 | 项目 | 值 | |------|-----| | 主机 | mysql(Docker 服务名) | | 端口 | 3306 | | 数据库名 | xuqm_private | | 业务账号 | xuqm | | 业务密码 | XuqmMysql@2026 | | Root 密码 | XuqmRoot@2026 | | 字符集 | utf8mb4 / utf8mb4_unicode_ci | | 时区 | +08:00 | --- ## Redis | 项目 | 值 | |------|-----| | 主机 | redis(Docker 服务名) | | 端口 | 6379 | | 数据库 | 0 | | 密码 | XuqmRedis@2026 | | 持久化 | AOF(appendonly 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` | 邮件服务配置 | --- ## 常用运维命令 ```bash # 进入部署目录 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](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`,中文数据正常存储。