2026-05-18 19:49:31 +08:00
|
|
|
|
# XuqmGroup Private Deploy
|
|
|
|
|
|
|
|
|
|
|
|
私有化部署仓库只负责客户环境交付,不包含业务源码和 demo 前后端。
|
|
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./scripts/configure.sh
|
|
|
|
|
|
vim .env
|
|
|
|
|
|
vim config/secrets.env
|
|
|
|
|
|
./scripts/install.sh --profile base
|
|
|
|
|
|
./scripts/healthcheck.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
生产部署前必须完成:
|
|
|
|
|
|
|
|
|
|
|
|
- 配置镜像仓库 `REGISTRY` 和版本 `IMAGE_TAG`。
|
|
|
|
|
|
- 选择 MySQL/Redis 模式:`external` 使用客户自备服务,`managed` 由脚本创建容器服务。
|
|
|
|
|
|
- 配置控制台、文档站、文件、IM、Push、Update、License 域名。
|
|
|
|
|
|
- 配置 SMTP、Push 厂商、应用市场发布凭据。
|
|
|
|
|
|
- 确认证书和反向代理策略,默认 Nginx 配置只作为模板入口。
|
|
|
|
|
|
|
|
|
|
|
|
## 部署模式
|
|
|
|
|
|
|
|
|
|
|
|
MySQL、Redis 支持两种模式:
|
|
|
|
|
|
|
|
|
|
|
|
- `external`:客户自备连接,脚本只校验连通性和权限。
|
|
|
|
|
|
- `managed`:脚本新建服务,自动创建数据库、账号、密码和数据目录。
|
|
|
|
|
|
|
|
|
|
|
|
生产环境默认推荐 `external/external`。
|
|
|
|
|
|
|
|
|
|
|
|
托管模式示例:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./scripts/install.sh --profile base --mysql-mode managed --redis-mode managed
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
外部模式示例:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./scripts/install.sh --profile base --mysql-mode external --redis-mode external
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 可选服务
|
|
|
|
|
|
|
|
|
|
|
|
- `base`:基础控制台、运营平台、文档站、文件服务。
|
|
|
|
|
|
- `im`:IM HTTP / WebSocket。
|
|
|
|
|
|
- `push`:厂商推送。
|
|
|
|
|
|
- `update`:版本管理、RN 热更新、应用市场自动发布。
|
|
|
|
|
|
- `license`:License 校验。
|
|
|
|
|
|
|
|
|
|
|
|
后期启用:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./scripts/enable-service.sh im
|
|
|
|
|
|
./scripts/enable-service.sh push
|
|
|
|
|
|
./scripts/enable-service.sh update
|
|
|
|
|
|
./scripts/enable-service.sh license
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
禁用服务只修改部署配置并停止对应容器,不删除数据:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./scripts/disable-service.sh im
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-19 08:01:19 +08:00
|
|
|
|
## 租户迁移
|
|
|
|
|
|
|
|
|
|
|
|
将公有化平台的存量租户迁移到私有化部署(需源 MySQL 网络可达):
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./scripts/migrate-tenant.sh \
|
|
|
|
|
|
--src-host <生产MySQL地址> \
|
|
|
|
|
|
--src-user <用户名> \
|
|
|
|
|
|
--src-password '<密码>' \
|
|
|
|
|
|
--tenant <租户邮箱或用户名>
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
加 `--dry-run` 只打印 SQL 不执行。详见 `docs/runbook.md`。
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
- `tenant-service` 运行在容器内 **9001** 端口,nginx 代理必须指向该端口,不是 8080。
|
|
|
|
|
|
- `application.yml` 中数据库 URL 硬编码了生产地址,私有化部署依赖 `docker-compose.yml` 中的 `SPRING_DATASOURCE_*` 覆盖,不能删除 `environment:` 节。
|
|
|
|
|
|
- `docs-site` 镜像可选,不存在时 nginx 和 healthcheck 可正常工作(warn 级别)。
|
|
|
|
|
|
|
2026-05-18 19:49:31 +08:00
|
|
|
|
## 接手入口
|
|
|
|
|
|
|
|
|
|
|
|
- 实时部署进度:`.deploy-state/progress.md`
|
|
|
|
|
|
- 最近运行状态:`.deploy-state/current.json`
|
|
|
|
|
|
- 最近健康检查:`.deploy-state/last-healthcheck.json`
|
|
|
|
|
|
- 脚本审计日志:`logs/audit.log`
|
|
|
|
|
|
- 交付说明:`docs/runbook.md`
|
|
|
|
|
|
- 配置说明:`docs/configuration.md`
|
|
|
|
|
|
- 验收清单:`docs/acceptance-checklist.md`
|