提交图

11 次代码提交

作者 SHA1 备注 提交日期
徐勤民
a327a262dd feat(deploy): 移除 ops-web、修复 SDK URL 注入、新增一键升级
核心变更:
- 完全移除 ops-web 容器(私有化部署无需运营后台)
- nginx sub_filter 替换前端 JS bundle 中的公网 SDK URL
- deploy.sh 写入正确的 SDK_IM_WS_URL / SDK_IM_API_URL / SDK_FILE_SERVICE_URL
- 新增 scripts/update.sh:热更新脚本,修复配置 + 可选拉镜像 + 重启 + 验证
- 新增 upgrade.sh:一键升级入口,curl 下载后直接执行,流程同 install.sh
- install.sh 检测已有部署(.env 存在),自动路由到 update.sh 而非重跑向导
- 关键配置文件(.env / secrets.env / xuqm.env)在 tarball 解压前备份后恢复

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 18:25:12 +08:00
徐勤民
0c4802b20a feat(deploy): nginx 绑定模式可选,兼容有/无宿主机 nginx 两种场景
向导新增第 0d 步:询问宿主机 80 端口是否空闲。
  - 空闲(多层代理/内网)→ NGINX_BIND=80,容器直接监听宿主机 80
  - 已有 nginx(云服务器 HTTPS)→ NGINX_BIND=127.0.0.1:11223,宿主机加一条转发

docker-compose.yml nginx ports 改用 ${NGINX_BIND:-80}:80 变量控制。
端口检查、Step 7 验证地址、部署完成输出均根据模式动态调整。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 17:20:02 +08:00
徐勤民
8b0c05e0e4 feat(nginx): 容器直接绑定 0.0.0.0:80,宿主机无需 nginx 配置
将内置 nginx 从 127.0.0.1:11223 改为直接绑定宿主机 0.0.0.0:80。
上层 nginx 直接 proxy_pass 到本机 IP:80 即可,省去宿主机 nginx 配置环节。
同步更新端口检查(80)、部署完成提示、runbook/configuration/README 文档。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 17:15:53 +08:00
徐勤民
a55121aa05 feat(nginx): 内置路由 nginx 作为统一入口,宿主机 nginx 只需一条 proxy_pass
将 nginx 容器从可选 profile 改为 base 必启服务,绑定 127.0.0.1:11223。
新增 config/nginx/conf.d/xuqm.conf 按 Docker 服务名路由所有内部请求。
部署完成提示从多条 location 精简为单条 proxy_pass http://127.0.0.1:11223。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 16:13:04 +08:00
徐勤民
964188ba8c fix(ports): 宿主机端口改为 11224-11231
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 15:43:05 +08:00
徐勤民
69da547866 fix(ports): 宿主机端口改为 10223-10230,绑定 127.0.0.1
原端口(8080-9001)在 Windows/Hyper-V 环境下可能被系统排除导致绑定失败。
统一改用 10223 起顺序编号,同时绑定 127.0.0.1 限制只有本机 nginx 可访问:
  10223 tenant-service   10224 file-service    10225 tenant-web
  10226 ops-web          10227 im-service      10228 push-service
  10229 update-service   10230 license-service

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 15:40:28 +08:00
徐勤民
2a250e79a0 refactor(deploy): 去除内置 nginx,各服务暴露宿主机端口,末尾输出 nginx 配置参考
私有化部署场景下用户通常有自己的 nginx,内置 nginx 容器会占用 80/443
与宿主机冲突,且域名/HTTPS 交互配置对用户是噪音。

- docker-compose.yml: nginx 容器改为 profile=nginx-bundled(默认不启动)
  各业务容器增加 ports 暴露宿主机端口(9001/8086/8082/8083/8084/8085/8080/8081)
- deploy.sh: 去除 域名/HTTPS/certbot 交互,改为询问一个外部访问地址(用于 SDK 配置)
  健康检查和 import API 直接打 127.0.0.1:9001,不再依赖 nginx 容器
  末尾输出端口表和可直接复制的 nginx location 配置参考

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 15:30:55 +08:00
徐勤民
e5ffde39a0 fix(docker-compose): add SPRING_DATASOURCE/REDIS overrides to all services
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>
2026-05-19 18:23:27 +08:00
徐勤民
43a423b85c feat: 一键安装向导 + 交互式租户初始化
- 新增 install.sh:curl 一键下载依赖安装 + 自动解压部署包 + 启动部署向导
- deploy-szyx.sh:移除硬编码租户常量,改为交互式选择(新建/迁移)
  - 新建租户:收集邮箱/用户名/密码,bcrypt 写入 bootstrap.env
  - 迁移租户:提示输入生产 MySQL 配置,bcrypt 验证主账号后执行迁移
  - 已有数据时迁移前显示红色警告要求 yes 确认
- 移除 docs-site 独立容器(文档已内置于 tenant-web/docs/)
- nginx 和 docker-compose 同步清理 docs-site 残留配置

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:29:57 +08:00
徐勤民
20423a0347 fix: add Spring Boot DB/Redis overrides and full nginx routing
- docker-compose.yml: add SPRING_DATASOURCE_* and SPRING_DATA_REDIS_*
  environment vars for tenant-service and file-service; these override
  hardcoded production URLs in application.yml at startup.
  docs-site depends_on marked required:false so nginx starts even when
  docs-site image is unavailable.
- config/nginx/conf.d/xuqm.conf: add routing for /api/ and /actuator/
  to tenant-service:9001, /file/ to file-service:8086, /ops to ops-web;
  add client_max_body_size 100m and proxy headers.

Discovered and verified during P5-01 WSL2 acceptance testing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 00:13:09 +08:00
徐勤民
4ada03183a chore: scaffold private deployment repository 2026-05-18 19:49:31 +08:00