第8阶段:运营
目标:站点在丢失笔记本、服务器宕机、更新失败或更换机器后仍能存活,并且没有人需要记住操作步骤。
步骤
- 备份。
- 每周运行
scripts/backup.sh,并在执行风险操作前运行。它会打包数据库、上传文件、每个 Git 分支和暂存区,以及 Claude 记忆。 - 在 zip 文件离开机器前使用
--encrypt参数,并在机器外保留一份副本。 - 实时备份:主机的每日备份,加上部署脚本和内容脚本生成的转储。
- 每周运行
- 记录所有文件的存放位置 到项目的
docs/reference/DISASTER_RECOVERY.md第0节中。包括原始照片文件夹:它不在 git 中。 - 恢复演练。 每季度在备用机器或新的 DDEV 项目上执行一次恢复,记录耗时,并在 §5 中记录。从未恢复过的备份只是希望,不是真正的备份。
- 凭据: 每个密码在
CREDENTIALS_INVENTORY.md中有一行(名称、存放位置、谁拥有它、最近轮换时间)。任何被代理看到过的凭据都需要轮换。 - 例程: 每周、每月和每年检查,更新策略和告警,记录在
docs/reference/OPERATIONS.md中。插件更新先到暂存环境。 - 多台机器? 请遵循
references/multi-machine.md:docs/team/BRIDGE.md记录角色、规则和交接日志;scripts/workstation-doctor.sh检查环境一致性;scripts/make-state-bundle.sh加密打包被 git 忽略的配置。
关口(在 SITE_STATUS.md 中勾选)
- 备份已安排,并有离机副本
- 恢复演练已完成(日期、耗时)
- 更新和告警例程已写入
OPERATIONS.md
经验教训
- 备份脚本曾经指向错误的 Claude 记忆文件夹。会话从父文件夹运行,因此记忆存放在不同的路径下。脚本会推导路径,但为此情况接受
CLAUDE_MEM=参数。 - 云构建机上有一个分支和暂存区,其他地方不存在,且该机器无法推送。在机器停止或被删除之前,使用
git bundle通过 ssh 将它们拉取出来。 - 在一个操作系统上创建的视觉基线在另一个操作系统上会失败。将它们保留在固定的 Docker 镜像中。
- 免费计划或信用额度到期日期是出口演练的截止日期:到期前一周,证明你可以从 git + 状态包 + 备份在下一台机器上重建。