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

202 行
6.2 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 私有化部署默认信息
本文档记录数字医信私有化部署的默认配置,供运维和对接人员参考。
---
## 部署信息
| 项目 | 值 |
|------|-----|
| 部署版本 | 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`(全量部署)
---
## 数据库
| 项目 | 值 |
|------|-----|
| 主机 | 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` | 邮件服务配置 |
---
## 常用运维命令
```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`,中文数据正常存储。