依据:B1 执行关窗记录(fa261b3)+ deploy.sh/migrate.sh/backup-to-cos.sh 源码梳理。
原则:生产永不自动——一切生产写操作(部署/迁移/修账)等刘总人工令;staging 走 push 钩子自动。
| 环境 | 位置 | 端口 | 部署方式 |
|---|---|---|---|
| 生产 | 服务器 /srv/kailash(容器 kailash-app / kailash-pg) | 8088(反代 api.kailashi.cn) | ./scripts/deploy.sh(人工令) |
| staging | 服务器 /srv/kailash-staging | 8089(Tailscale 100.64.1.230) | push 钩子 post-receive 自动 |
| DB 生产 | 容器 kailash-pg,用户 yos,库 kailash | — | 迁移永不自动(marked 表) |
| DB staging | kailash-staging-pg,库 kailash_staging | — | migrate.sh 自动跑未执行迁移 |
git push origin maingit archive main backend → ssh 服务器解到 TARGET → docker compose 重建容器DEPLOY_WITH_MIGRATIONS=1)B1 已踩坑(关窗后登记待修 4 项):
backend/scripts(B1 手工 rsync 补位才炸过)——待修sudo docker exec -i 吞脚本静默 exit 0)→ 正解=scp 到服务器本地执行docker exec kailash-pg psql -U yos -d kailash -c "SELECT * FROM schema_migrations ORDER BY filename")→ 列影响面 → 刘总令 → 执行(scp 后本地跑)→ 台账核验ssh kailash(主机别名)/ KAILASH_HOST 可覆盖;生产 SSH key:kailash.pem(沙箱无,服务器上操作需在小齐/阿仁环境或刘总授权通道)