XuqmGroup私有化部署仓库
转到文件
徐勤民 4ff09ae768 feat(update): 完整重写热更新脚本,覆盖所有已知部署问题
Step 1 - CONSOLE_DOMAIN:检测裸 IP,交互提示输入公网域名
Step 2 - SDK URL:修复 xuqinmin.com 残留 / 内网 IP / 空值三种情形
Step 3 - SDK JSON:同步 xuqm-private-sdk.json
Step 4 - 宿主机 nginx WebSocket 头:
  · nginx -T 获取完整配置
  · Python3 精确定位代理到容器 nginx 的 location 块
  · 缺少 proxy_http_version 1.1 / Upgrade / Connection 时自动注入
  · 修改前备份 .xuqm.bak,nginx -t 失败自动回滚,成功后 nginx -s reload
  · 未发现代理配置时输出标准模板供参考
Step 5 - 拉取镜像(可选)
Step 6 - 重启 tenant-service + nginx
Step 7 - 等待 tenant-service 健康(最长 120s)
Step 8 - 自动处理积压 PENDING 服务开通申请
Step 9 - 全量验证

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 18:58:28 +08:00
config feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
data chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
docs feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
logs chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
scripts feat(update): 完整重写热更新脚本,覆盖所有已知部署问题 2026-05-20 18:58:28 +08:00
templates chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
.env.example feat(deploy): 完成私有化部署全流程验收 2026-05-19 19:23:28 +08:00
.gitignore chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
docker-compose.infra.yml feat: 一键安装向导 + 交互式租户初始化 2026-05-19 14:29:57 +08:00
docker-compose.yml feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
image-manifest.json feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
install.sh feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
README.md feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
upgrade.sh feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级 2026-05-20 18:25:12 +08:00
VERSION feat(update): 完整重写热更新脚本,覆盖所有已知部署问题 2026-05-20 18:58:28 +08:00

XuqmGroup 私有化部署

快速开始

首次部署:

curl -fsSL https://xuqinmin.com/xuqmGroup/XuqmGroup-PrivateDeploy/raw/branch/main/install.sh \
  -o install.sh && bash install.sh

脚本自动完成:依赖检测 → 配置生成 → 镜像拉取 → 容器启动 → 租户初始化(新建或迁移)→ 全量验证。

升级已有部署:

curl -fsSL https://xuqinmin.com/xuqmGroup/XuqmGroup-PrivateDeploy/raw/branch/main/upgrade.sh \
  -o upgrade.sh && bash upgrade.sh

升级脚本自动完成:下载最新脚本 → 保留全部数据和配置 → 修复配置问题 → 可选拉取新镜像 → 重启容器 → 全量验证。

部署完成后根据输出的端口表配置宿主机 nginx,详见 docs/runbook.md

部署架构

上层 nginx任意层级
    │
    └── 本机 IP:80  内置 nginx 容器(统一入口,无需宿主机 nginx
            │
            ├── tenant-service   /api/  /actuator/
            ├── file-service     /file/
            ├── tenant-web       /(兜底)
            ├── im-service       /api/im/  /ws/im
            ├── update-service   /api/v1/updates/  /api/v1/rn/
            ├── license-service  /api/license/
            └── push-service     (厂商回调,按需)

内置 nginx 容器直接绑定宿主机 0.0.0.0:80宿主机无需任何 nginx 配置,上层 nginx 直接 proxy_pass 到本机 IP 即可。各业务容器11224–11231绑定 127.0.0.1,仅用于本地调试。

租户初始化方式

安装脚本启动后交互式选择:

  • 新建租户:填写邮箱、用户名、密码,首次启动自动创建
  • 迁移租户:在公有化平台安全中心生成迁移密钥(pmk_ 开头),粘贴后自动完成导入

服务说明

Profile 服务 说明
base tenant-service, file-service, tenant-web, nginx 必选核心服务(含内置路由 nginx
infra-mysql mysql 托管数据库
infra-redis redis 托管缓存
im im-service IM HTTP + WebSocket
push push-service 厂商推送
update update-service 版本管理 + RN 热更新
license license-service License 校验

后期启用/禁用服务

./scripts/enable-service.sh im
./scripts/disable-service.sh im

注意事项

  • application.yml 中数据库 URL 硬编码了生产地址,docker-compose.ymlenvironment: 节负责覆盖,不能删除
  • 上层 nginx proxy_pass 写本机 IP端口 80,须透传 Upgrade / ConnectionWebSocket 必需),每层都要加,详见 docs/runbook.md
  • 宿主机本身无需配置 nginx

文档