R79 收口公网部署与治理事实源
这个提交包含在:
+14
-10
@@ -6,18 +6,20 @@
|
||||
- [ ] 已确认官网继续走 `hyinda.com / www.hyinda.com`,OA 使用独立二级域名(建议 `oa.hyinda.com`)
|
||||
- [ ] 服务器已执行 `bash deploy/trialrun/setup-server.sh`
|
||||
- [ ] 已在服务器创建 OA 目录(默认 `/opt/hyb-oa-trialrun`)
|
||||
- [ ] 已确认常规 SSH 用户为 `deploy`,系统配置用户为 `root`;当前不依赖 `shunli` 登录
|
||||
- [ ] 已准备 `deploy/trialrun/.env`,并将 `APP_ORIGIN` 改为 OA 公网域名
|
||||
- [ ] 已将 `COOKIE_SECURE` 设为 `true`
|
||||
- [ ] 已确认 `deploy/trialrun/.env` 作为部署事实源,新增环境变量优先补到该文件
|
||||
- [ ] 已尽量使用无引号 env 值;历史带引号值当前兼容,但建议逐步清理
|
||||
- [ ] 已将 OA Nginx 配置放到 `/etc/nginx/sites-available/hyb-oa`
|
||||
- [ ] 已上传 OA 域名证书到 `/etc/nginx/ssl/<oa-domain>/`
|
||||
- [ ] 已执行 `nginx -t && systemctl reload nginx`
|
||||
- [ ] 已将 OA `Caddyfile` 站点块配置到 `/etc/caddy/Caddyfile`
|
||||
- [ ] 已确认 `oa.hyinda.com { reverse_proxy 127.0.0.1:3000 }` 生效
|
||||
- [ ] 已执行 `systemctl reload caddy`
|
||||
- [ ] 已从本地执行 `bash scripts/qa/run-release-gate.sh all` 或至少执行 `bash deploy/trialrun/deploy.sh`
|
||||
- [ ] 已通过 `https://<oa-domain>/ready` 或首页登录完成最小探活
|
||||
- [ ] 首次上线先执行系统初始化(migration + seed),不要直接导入旧库整库备份
|
||||
- [ ] 若要导数据,仅准备最小主数据:部门、员工、角色、在用资产、活跃项目、合同元数据
|
||||
- [ ] 不导入历史审批单、通知历史、审计日志、聊天记录和涉密正文附件
|
||||
- [ ] 已确认远端部署目录 `/opt/hyb-oa-trialrun` 不是 git 工作树,发布优先走 `bash deploy/trialrun/deploy.sh`
|
||||
|
||||
## A. 发布前(Pre-flight)
|
||||
- [ ] 确认当前版本已打 tag:`git tag -a trialrun-YYYYMMDD-NN -m "trialrun release"`
|
||||
@@ -32,16 +34,18 @@
|
||||
- [ ] `./scripts/backup-storage.sh`(记录输出文件名)
|
||||
|
||||
## B. 发布(Deploy)
|
||||
- [ ] `git checkout <tag>`
|
||||
- [ ] 在本地仓库切到目标版本:`git checkout <tag>`,然后执行 `bash deploy/trialrun/deploy.sh`
|
||||
- [ ] 构建并启动:
|
||||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env run --rm init`
|
||||
- [ ] `docker-compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||||
- [ ] `docker-compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env run --rm init`
|
||||
- [ ] 探活:
|
||||
- [ ] `curl -fsS http://127.0.0.1:3000/ready`
|
||||
- [ ] Runtime smoke:
|
||||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env exec -T server node src/scripts/smoke-trialrun-runtime.js`
|
||||
- [ ] `docker-compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env exec -T server node src/scripts/smoke-trialrun-runtime.js`
|
||||
- [ ] 若 runtime smoke 报 `announcements_v1` 或 `global_search_v1` 为 `force_off`,已记录为发布阻塞,不忽略通过
|
||||
- [ ] external deps smoke:
|
||||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env exec -T server node src/scripts/smoke-external-deps.js`
|
||||
- [ ] `docker-compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env exec -T server node src/scripts/smoke-external-deps.js`
|
||||
- [ ] 若 external deps smoke 通过,已确认通过前提不是“企微关闭 + OCR mock”误通过
|
||||
- [ ] 登录验证已由 live smoke 与 release gate 覆盖;仅首次接入或第三方后台配置变更时补做人工确认
|
||||
|
||||
## C. 发布后(Post-check)
|
||||
@@ -56,12 +60,12 @@
|
||||
## D. 回滚(Rollback)
|
||||
> 原则:如果涉及迁移,最快回滚通常是 “恢复备份 + 回到上个 tag”。
|
||||
|
||||
- [ ] 停止 server:`docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env stop server`
|
||||
- [ ] 停止 server:`docker-compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env stop server`
|
||||
- [ ] 恢复 DB:`./scripts/restore-db.sh <db.dump>`
|
||||
- [ ] 恢复存储:`./scripts/restore-storage.sh <storage.tar.gz> deploy/trialrun/data/storage`
|
||||
- [ ] 回到上个版本:`git checkout <previous-tag>`
|
||||
- [ ] 重启并探活:
|
||||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||||
- [ ] `docker-compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||||
- [ ] `curl -fsS http://127.0.0.1:3000/ready`
|
||||
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户