- 更新部署进度文档,标记P5-02/P5-03为已完成状态 - 修复中文乱码问题,MySQL数据层使用UNHEX函数配合nginx字符集设置 - 配置im-service和update-service的内部服务URL,从127.0.0.1改为Docker服务名 - 实现全功能验收,nginx为所有服务添加路由映射并返回正确的状态码 - 创建私有化部署默认信息文档,记录完整的部署配置和访问地址 - 添加部署清理脚本clean.sh,支持一键清理容器、配置和数据目录 - 更新敏感配置模板,添加详细的密码和密钥配置说明 - 优化前端实时消息轮询机制,通过WebSocket心跳检测决定是否启用HTTP轮询回退
202 行
6.2 KiB
Markdown
202 行
6.2 KiB
Markdown
# 私有化部署默认信息
|
||
|
||
本文档记录数字医信私有化部署的默认配置,供运维和对接人员参考。
|
||
|
||
---
|
||
|
||
## 部署信息
|
||
|
||
| 项目 | 值 |
|
||
|------|-----|
|
||
| 部署版本 | 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`,中文数据正常存储。
|