chore: add safe production deploy script

This commit is contained in:
2026-05-20 16:15:33 +08:00
parent 1618ac13f1
commit 85d365069b
3 changed files with 88 additions and 4 deletions

View File

@@ -540,8 +540,8 @@
</tr>
<tr>
<td>生产部署</td>
<td><code>docker compose -f docker-compose.prod.yml --env-file deploy/.env.production up -d --build</code></td>
<td>服务器目录为 <code>/opt/skg-marketing-studio</code>;后端任务文件挂载到 <code>./data/jobs</code>,全局资源中心挂载到 <code>./data/asset_library</code><code>./data/prompt_library</code><code>./data/_trash</code>,真实 Key 只放服务器 <code>deploy/.env.production</code>Web 上线验收必须按 Docker 静态形态跑 <code>./scripts/verify-prod-docker.sh</code>,不能只用本地 <code>npm run build</code> 替代</td>
<td><code>./scripts/deploy-prod-safe.sh</code></td>
<td>服务器目录为 <code>/opt/skg-marketing-studio</code>;后端任务文件挂载到 <code>./data/jobs</code>,全局资源中心挂载到 <code>./data/asset_library</code><code>./data/prompt_library</code><code>./data/_trash</code>,真实 Key 只放服务器 <code>deploy/.env.production</code>生产部署唯一入口是 <code>deploy-prod-safe.sh</code>:先备份服务器 env、案例和资源库再用 protect/exclude 保护 <code>data/</code><code>jobs/</code><code>secrets/</code><code>deploy/.env.production</code> 后同步代码,最后 Docker 重建并跑 <code>verify-prod-docker.sh</code>。禁止再用裸 <code>rsync --delete</code> 手动同步</td>
</tr>
<tr>
<td>前端开发服务</td>
@@ -1131,6 +1131,18 @@ ProductRefStateItem {
<h2>变更记录</h2>
<p>这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。</p>
<div class="changelog">
<article class="change">
<header>
<h3>2026-05-20 · 生产部署增加数据保护脚本</h3>
<span class="tag amber">Deploy</span>
<span class="tag rose">Safety</span>
</header>
<div class="body">
<p><strong>问题:</strong>手动 <code>rsync --delete</code> 如果没有排除服务器 <code>data/jobs</code> 和真实 <code>deploy/.env.production</code>,会把生产案例、资源库或登录配置删掉。</p>
<p><strong>改动:</strong>新增 <code>scripts/deploy-prod-safe.sh</code> 作为生产部署唯一入口。脚本部署前会在服务器创建 <code>/opt/skg-marketing-studio-backups/skg-marketing-preserve-*.tgz</code>,备份真实 env、案例、资源库和 secrets同步时用 <code>rsync --filter='P ...'</code> 和 exclude 双重保护 <code>data/</code><code>jobs/</code><code>secrets/</code><code>api/jobs</code><code>deploy/.env.production</code> 和本地开发文件。</p>
<p><strong>影响:</strong>后续发布不再手写裸 <code>rsync --delete</code>;脚本会自动 Docker 重建并调用 <code>verify-prod-docker.sh</code>。若误操作,先从最新 <code>skg-marketing-preserve-*.tgz</code> 恢复。</p>
</div>
</article>
<article class="change">
<header>
<h3>2026-05-20 · 转换层改为提示词确认后生成</h3>