XuqmGroup私有化部署仓库
im-service, push-service, update-service, license-service were missing the SPRING_DATASOURCE_URL/USERNAME/PASSWORD environment overrides that tenant-service and file-service already had. Without these, all services connected to the hardcoded production database (39.107.53.187) instead of the local private MySQL, causing mutations in the private deployment to affect the public platform. im-service also gets SPRING_DATA_REDIS_* overrides to replace the hardcoded redisdev.xuqinmin.com Redis connection. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .deploy-state | ||
| config | ||
| data | ||
| docs | ||
| logs | ||
| scripts | ||
| templates | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.infra.yml | ||
| docker-compose.yml | ||
| image-manifest.json | ||
| install.sh | ||
| README.md | ||
| VERSION | ||
XuqmGroup Private Deploy
私有化部署仓库只负责客户环境交付,不包含业务源码和 demo 前后端。
快速开始
./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。
托管模式示例:
./scripts/install.sh --profile base --mysql-mode managed --redis-mode managed
外部模式示例:
./scripts/install.sh --profile base --mysql-mode external --redis-mode external
可选服务
base:基础控制台、运营平台、文档站、文件服务。im:IM HTTP / WebSocket。push:厂商推送。update:版本管理、RN 热更新、应用市场自动发布。license:License 校验。
后期启用:
./scripts/enable-service.sh im
./scripts/enable-service.sh push
./scripts/enable-service.sh update
./scripts/enable-service.sh license
禁用服务只修改部署配置并停止对应容器,不删除数据:
./scripts/disable-service.sh im
租户迁移
将公有化平台的存量租户迁移到私有化部署(需源 MySQL 网络可达):
./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 级别)。
接手入口
- 实时部署进度:
.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