徐勤民
|
618997c886
|
fix(security): migrate internal service token
|
2026-07-29 01:37:09 +08:00 |
|
徐勤民
|
30dfef3edd
|
fix(verify): validate tenant-owned application routes
|
2026-07-29 00:55:04 +08:00 |
|
徐勤民
|
ebbf8e0381
|
fix(security): provision private config signing keys
|
2026-07-29 00:40:41 +08:00 |
|
徐勤民
|
465910caa0
|
fix(update): recover stopped active services
|
2026-07-29 00:27:49 +08:00 |
|
徐勤民
|
4d595edcae
|
fix(update): target compose-managed database exactly
|
2026-07-29 00:22:30 +08:00 |
|
徐勤民
|
7feafd4643
|
fix(update): avoid pulling infrastructure images
|
2026-07-29 00:21:24 +08:00 |
|
徐勤民
|
61e5ce9905
|
fix(update): tolerate optional database identity fields
|
2026-07-29 00:16:12 +08:00 |
|
徐勤民
|
cd369f3f30
|
fix(backup): honor deployed infrastructure mode
|
2026-07-29 00:13:32 +08:00 |
|
徐勤民
|
44bd91d8e1
|
refactor(deploy): harden private upgrade workflow
|
2026-07-29 00:11:07 +08:00 |
|
徐勤民
|
872a3331de
|
fix(update): keep optional mail health non-blocking
|
2026-07-28 22:05:20 +08:00 |
|
徐勤民
|
7912b6a527
|
feat(deploy): provision store monitoring secrets
|
2026-07-28 19:53:39 +08:00 |
|
徐勤民
|
475067562c
|
refactor: remove deprecated license service
|
2026-07-27 13:21:01 +08:00 |
|
徐勤民
|
c8bd617ae0
|
refactor: remove license migration steps
|
2026-07-27 13:05:00 +08:00 |
|
徐勤民
|
6868cfcd8e
|
fix(nginx): enforce safe web cache policy
|
2026-07-27 12:21:09 +08:00 |
|
徐勤民
|
b42c2c686b
|
fix: deploy.sh 和 update.sh 补充 SDK_BUGCOLLECT_API_URL 配置
deploy.sh:xuqm.env 模板增加 SDK_BUGCOLLECT_API_URL=${CONSOLE_BASE}/api,
避免新建部署时缺失该配置导致 BugCollect 上报路径拼接错误(double /bugcollect)。
update.sh:Step 2 SDK URL 修复逻辑增加对 SDK_BUGCOLLECT_API_URL 的检测:
- 值为空:追加正确地址
- 含 xuqinmin.com 残留 / 裸 IP:修正为当前 CONSOLE_DOMAIN/api
- 含错误的 /bugcollect 后缀:去除后缀(SDK 自己拼接完整路径)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 22:03:10 +08:00 |
|
徐勤民
|
d353ecdb39
|
fix(update): 在重启 bugcollect-service 前执行 schema 预检和自动修复
避免因 Flyway 迁移 no-op 类问题导致服务启动失败、只能登录服务器手工操作的情况。
新增启动前 schema 预检步骤,使用条件 SQL 检查并补全已知缺失列(build_id),
后续新增迁移问题时可在同一位置追加检查项。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 18:54:18 +08:00 |
|
徐勤民
|
2ad8e6cc13
|
fix(update): bugcollect 建库用户名默认 xuqm
secrets.env 中无 MYSQL_USERNAME / MYSQL_USER key,
与 docker-compose.yml 中 SPRING_DATASOURCE_USERNAME 默认值 xuqm 对齐,
避免 _mysql_user 为空导致 GRANT 不执行。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 17:17:44 +08:00 |
|
徐勤民
|
dcf1baa2c2
|
fix(update): bugcollect 建库失败时打印详细错误信息
原来 2>/dev/null 把 mysql 错误吞掉导致无法排查;
改为捕获 stderr 并在失败时通过 warn 输出,同时打印
container/db/user 便于逐步排查凭据读取问题。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 17:12:51 +08:00 |
|
徐勤民
|
38eaa8fc83
|
fix(update): bugcollect-service 升级时自动创建 xuqm_bugcollect 数据库并授权
旧私有化部署从未运行过 bugcollect-service,upgrade.sh 将服务拉起后
Flyway 因 xuqm_bugcollect 数据库不存在(Access denied 1044)立即崩溃。
在启动 bugcollect-service 前检测运行中的 MySQL 容器,读取 secrets.env
中的 root 密码,自动执行 CREATE DATABASE IF NOT EXISTS + GRANT,
避免首次引入该服务时需要手动建库。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 17:06:57 +08:00 |
|
徐勤民
|
544aa07fef
|
fix(verify): 容器状态检查补充 bugcollect-service 和 symbolicator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 17:00:51 +08:00 |
|
徐勤民
|
b1faced2f5
|
fix(update): 改用 compose 文件判断是否启动 bugcollect-service
前两次修复均依赖历史容器(docker ps -a),在旧部署从未运行过
bugcollect 的情况下无法检测。
改为检查 docker-compose.yml 是否定义了 bugcollect-service:
- profile 激活:有定义即导出 COMPOSE_PROFILES=bugcollect
- 服务重启:有定义即直接 up,不依赖容器历史状态
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 16:54:16 +08:00 |
|
徐勤民
|
b0dad0b90e
|
fix(update): 修复 bugcollect-service 已停止时升级仍跳过的问题
上次修复用 docker ps(仅运行中)检测 bugcollect,导致容器已停止时
profile 未激活、重启循环也跳过,升级后 502 依旧。
修复:
- profile 检测改用 docker ps -a(含已停止容器)
- bugcollect-service / symbolicator 从主循环拆出,独立用 docker ps -a
检测历史容器,存在即以 COMPOSE_PROFILES=bugcollect 重启,不依赖
当前运行状态
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 16:46:53 +08:00 |
|
徐勤民
|
a1625ade98
|
fix(update): 修复升级时 bugcollect-service 被 --remove-orphans 停掉的问题
问题根因:
1. bugcollect-service 使用 profiles: ["bugcollect"],升级脚本未激活该
profile,docker compose --remove-orphans 将其当孤儿容器停掉
2. Step 6 重启列表未包含 bugcollect-service / symbolicator
修复:
- 启动前检测 bugcollect 容器是否在运行,自动导出 COMPOSE_PROFILES=bugcollect
- Step 6 服务重启列表追加 bugcollect-service、symbolicator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-23 16:38:37 +08:00 |
|
徐勤民
|
6c8049ef11
|
feat(bugcollect): 集成符号化服务支持移动端堆栈解析
- 添加 symbolicator 服务配置到 docker-compose.yml
- 配置 bugcollect-service 连接 symbolicator URL
- 设置 symbolicator 端口映射和资源限制
- 添加源码映射文件挂载目录
- 为 RN/Android/iOS/Flutter 堆栈符号化提供支持
docs(xwebview): 更新已知问题文档
- 记录 RN 0.85 Bridgeless 模式下 react-native-blob-util 崩溃问题
- 说明 react-native-blob-util 在 JSI/TurboModule 下初始化失败原因
- 提供宿主 app 使用 XWebViewContent 替代方案
- 添加待修复方案说明
|
2026-06-22 17:43:00 +08:00 |
|
徐勤民
|
aad7719c28
|
fix: nginx bugcollect 路由用 rewrite 剥离 /api 前缀,兼容 controller /bugcollect/v1 路径
|
2026-06-19 00:46:53 +08:00 |
|
徐勤民
|
cf09a1a311
|
fix: deploy.sh 用 printf 管道执行 SQL,避免密码含 @ 等特殊字符导致失败
|
2026-06-19 00:34:48 +08:00 |
|
徐勤民
|
c161118e8a
|
fix: deploy.sh 拆分 CREATE DATABASE 和 GRANT 语句,避免特殊字符密码导致失败
|
2026-06-19 00:24:26 +08:00 |
|
徐勤民
|
3a2536bcf6
|
fix: deploy.sh 自动创建 xuqm_bugcollect 数据库
|
2026-06-19 00:11:44 +08:00 |
|
徐勤民
|
086eb0edf2
|
fix: bugcollect-service 补充 env_file 配置,移除 compose 层密码变量引用
|
2026-06-18 23:52:38 +08:00 |
|
徐勤民
|
c2678a3357
|
docs: 补充 Flyway checksum mismatch 故障排查说明和更新日志
|
2026-06-18 22:44:32 +08:00 |
|
徐勤民
|
70ed2fcae0
|
feat: 新增 bugcollect-service 支持一键更新
- docker-compose.yml: 新增 bugcollect-service(profile: bugcollect)
- nginx/conf.d/xuqm.conf: 新增 /api/bugcollect/ 代理规则
- .env.example: 新增 bugcollect profile 和 ENABLE_BUGCOLLECT 开关
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-18 21:21:24 +08:00 |
|
|
|
28fdd0ed78
|
fix: update.sh nginx补丁修正Python中文字面量
|
2026-06-12 22:54:53 +08:00 |
|
|
|
65858594e7
|
fix: update.sh 迁移A修正heredoc写法
|
2026-06-12 22:48:29 +08:00 |
|
|
|
7abf1e1f26
|
fix: update.sh 迁移A-nginx拦截注册+兼容现有部署端口+非交互拉镜像
|
2026-06-12 22:43:24 +08:00 |
|
|
|
896ddab194
|
fix: nginx 精确拦截 /api/auth/register(私有化禁用用户自注册)
|
2026-06-12 19:50:49 +08:00 |
|
|
|
f04d1cea8c
|
fix: update.sh 兼容现有部署 — 修复硬编码11224/REGISTRY_HOST/非交互拉取镜像
|
2026-06-12 19:40:25 +08:00 |
|
|
|
b1f9642f61
|
fix: IM App Key 查询改用 is_default=1(enable_im 列不存在时报错)
|
2026-06-12 19:33:09 +08:00 |
|
|
|
a15c86d7e8
|
fix: SDK config 测试加 packageName 参数,IM 服务测试用真实 App Key
|
2026-06-12 19:31:11 +08:00 |
|
|
|
dde9a76029
|
feat: 支持 XUQM_CLEAN_DATA=1 在新建部署时清除旧数据目录
|
2026-06-12 19:14:47 +08:00 |
|
|
|
2f304d8384
|
feat: 预检自动检测内部端口冲突,WSL2/多套部署场景自动偏移 +10000
|
2026-06-12 19:09:44 +08:00 |
|
|
|
921db616e5
|
feat: 内部服务端口变量化(SVC_PORT_TENANT/FILE/WEB/IM/PUSH/UPDATE/LICENSE)
|
2026-06-12 19:09:33 +08:00 |
|
|
|
c7a2979f7c
|
fix: Redis 宿主机端口改为 127.0.0.1:REDIS_HOST_PORT(默认16379),避免 WSL2/已有 Redis 端口冲突
|
2026-06-12 19:00:48 +08:00 |
|
|
|
8d400e07cc
|
fix: Docker 镜像加速首选 docker.1ms.run(国内可用)
|
2026-06-12 18:56:25 +08:00 |
|
|
|
f8d02468db
|
feat: 自动检测并配置 Docker Hub 国内镜像加速(XUQM_SUDO_PASS 支持)
|
2026-06-12 18:46:37 +08:00 |
|
|
|
f7b5ac1a6c
|
fix: 自动移除 WSL2 Docker Windows 凭据存储配置(docker-credential-desktop.exe)
|
2026-06-12 18:43:57 +08:00 |
|
|
|
bddff7d9c8
|
fix: NONINTERACTIVE 已有部署时按 DEPLOY_MODE 自动选择更新或全量重部署
|
2026-06-12 18:42:25 +08:00 |
|
|
|
d327284af3
|
fix: NONINTERACTIVE 模式跳过 /dev/tty 重定向(CI/SSH 自动化部署)
|
2026-06-12 18:41:40 +08:00 |
|
|
|
f1de6167d3
|
fix: WSL兼容+verify加载secrets+deploy非交互模式
|
2026-06-12 18:34:47 +08:00 |
|
|
|
1c8988f973
|
fix: WSL兼容+verify加载secrets+deploy非交互模式
|
2026-06-12 18:34:46 +08:00 |
|
|
|
fac6f8b988
|
fix: WSL兼容+verify加载secrets+deploy非交互模式
|
2026-06-12 18:34:45 +08:00 |
|