XuqmGroup私有化部署仓库
转到文件
徐勤民 9eabe0d699 feat: implement complete private deployment scripts (P1-P4)
- upgrade.sh/rollback.sh: backup→pull→rolling restart→healthcheck→auto-rollback
- backup.sh/restore.sh: mysqldump+redis BGSAVE+config tar, SHA256 manifest, restore with checksum verification
- healthcheck.sh: Docker/container/MySQL/Redis/HTTP/disk checks, JSON output to .deploy-state/
- doctor.sh: sanitized diagnostics archive, vendor API TCP connectivity, cert expiry
- export-offline-bundle.sh: docker pull+save for all profile images, load-images.sh, SHA256
- configure.sh: interactive/non-interactive mode, MySQL/Redis mode selection, domain prompts
- enable-service.sh: domain validation, docker pull + compose up, healthcheck
- disable-service.sh: compose stop+rm, profile removal, render-config
- renew-cert.sh: acme.sh/certbot, --dry-run, backup old cert, nginx reload on success
- alert-webhook.sh: WeCom/DingTalk/Feishu webhook, message sanitization
- bench.sh: ab/wrk/curl benchmark, JSON report with docker stats
- rotate-secrets.sh: JWT and internal token rotation
- vendor credential templates: push.env and store-submit.env with full credential comments
- render-config.sh: auto-sync SDK URL env vars (SDK_FILE_SERVICE_URL, SDK_IM_API_URL, SDK_IM_WS_URL)
- All scripts pass bash -n syntax check

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 20:49:25 +08:00
.deploy-state chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
config feat: implement complete private deployment scripts (P1-P4) 2026-05-18 20:49:25 +08:00
data chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
docs chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
logs chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
scripts feat: implement complete private deployment scripts (P1-P4) 2026-05-18 20:49:25 +08:00
templates chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
.env.example chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
.gitignore chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
docker-compose.infra.yml chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
docker-compose.yml chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
image-manifest.json chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
README.md chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00
VERSION chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00

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:基础控制台、运营平台、文档站、文件服务。
  • imIM HTTP / WebSocket。
  • push:厂商推送。
  • update版本管理、RN 热更新、应用市场自动发布。
  • licenseLicense 校验。

后期启用:

./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

接手入口

  • 实时部署进度:.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