0–10 分钟:选 service/recovery point
明确 exact config、DB、data、identity、secrets 与 version。
成功标准Restore set 在操作前已明确。
Home Server 备份恢复检查表 · 更新 2026-07-05
面向 CasaOS、Umbrel、Nextcloud、YunoHost、RomM 与其他 home-server stacks 的实用备份和灾难恢复检查表。
Home server backup 不是拷贝一个目录,recovery 也不是重新安装 dashboard。真实 self-hosted system 通常同时包含 platform config、app manifests、DB、user files、media libraries、permissions、secrets、schedulers 与 external integrations。
这份 checklist 把 irreplaceable data 与 reproducible software 分开,定义 restore order,要求 off-device copies、retention 与 clean-machine restore drills。
RepoDaily 判断
在 clean machine 上无法恢复一个代表性 service,并证明 users、config、DB state、files、permissions、scheduled jobs 与 external references 正常前,不要称 home server 已完成备份。至少保留一份 server 外副本;应用不支持 downgrade 时,应把 upgrade rollback 当成 restore problem。
| 资产类别 | 例子 | 备份规则 | 恢复证明 |
|---|---|---|---|
| System configuration | Network、mounts、domains、reverse proxy | 与 app data 分开 export/document | Fresh host 无需临时猜测即可恢复服务 |
| App configuration | Compose、manifests、config dirs | Version control,secrets 分离 | App 使用预期 paths、ports、integrations 启动 |
| Database | SQLite、MariaDB、PostgreSQL | 使用 app-consistent dump 或 supported snapshot | Schema load 成功且 app integrity check 通过 |
| User data | Files、photos、uploads | 备份 authoritative data 与 metadata dependencies | Users、shares、references 正常 |
| Media library | ROMs、videos、artwork | Irreplaceable media 与 regenerable caches 分开 | Rescan 不丢 manual curation |
| Identity and permissions | Users、groups、ACLs、sharing rules | 包含 identity/permission metadata | Normal user 权限正确且无 extra privilege |
| Secrets | API keys、app secrets、TLS keys、backup keys | Encrypted 且恢复路径独立 | Service 可重新连接,不复制 stale credentials |
| Schedulers | Cron、background jobs、notifications | 盘点 job definitions 与 dependencies | Jobs 只恢复一次,不重复 side effects |
| External references | DNS、OAuth、object storage、SMTP | 记录 IDs/endpoints/owners | Service 能 reconnect 或给出 clear remediation |
| Backup catalog | Snapshots、archives、DB dumps | 维护 inventory 与 retention policy | Operator 能快速选对 restore point |
给 recoverability 打分,不是给 backup file 数量打分。
| 控制项 | 0 分 | 1 分 | 2 分 | Owner 问题 |
|---|---|---|---|---|
| Coverage | Files only | Most app data | Config + DB + data + identity + jobs + external refs | Restore 后还缺什么? |
| Off-device copy | Same disk | Second local disk | Separate device/location/cloud + tested credentials | Total device loss 后什么能活下来? |
| Consistency | Live copy no plan | Manual stop | Documented app-consistent dump/snapshot | Writes 会不会 race? |
| Encryption and keys | Unencrypted | Encrypted | Encrypted + separately recoverable key | Failed server 消失后还能解密吗? |
| Retention | Latest only | Several copies | Risk-based retained history | 多早以前的 corruption 能逃离? |
| Restore order | Unknown | Operator memory | Written dependency order + health checks | 哪个 service 先恢复? |
| Restore drill | Never | Partial file restore | Clean-host full-service recovery | 上次 proven recovery 是什么时候? |
| Upgrade rollback | Hope | Snapshot only | Pre-upgrade backup + compatibility plan + tested restore | Schema migration 后怎么恢复? |
快速证明一个重要 service 可以从当前 backup material 重建。
明确 exact config、DB、data、identity、secrets 与 version。
成功标准Restore set 在操作前已明确。
确认 primary server 消失后 backup/decryption path 仍可用。
成功标准没有 critical dependency 只存在 failed host。
安装 compatible base,按 order restore DB/config/data,并保持 non-public。
成功标准App 无需临时猜测即可启动。
Admin/normal user 登录,检查 files/media、permissions、shares、search 与一次 write。
成功标准Ownership/access 符合预期。
运行 background job、notification 或 metadata refresh 一次。
成功标准Jobs 无 duplicate/stale refs。
记录 elapsed time、missing files、manual commands、stale docs 与 data-loss window。
成功标准Runbook 与 coverage 得到改进。
| 场景 | 备份重点 | 恢复陷阱 |
|---|---|---|
| CasaOS home server | Platform config、app config、volumes、user files、mount map | Dashboard 恢复,但 app paths/mounts 改变 |
| Umbrel appliance | OS/app config、persistent data、identity-sensitive data、storage map | 误以为每个 app 有统一 backup path |
| Nextcloud collaboration cloud | Config、data dir、DB、custom apps/themes if used | 只恢复 files,没有 matching DB/config |
| YunoHost multi-app server | System config、users/domains、app backups、mail/data、restore scripts | Archive 存在但 destination package 无法 restore |
| RomM media library | ROM/media、DB、config、users/sharing、manual metadata | 只备 DB 或只备 authoritative library |
| Bad application upgrade | Pre-upgrade consistent backup + version notes | 对 migrated DB 尝试 unsupported downgrade |
| Ransomware/compromised admin | Historical independent copies + clean-room recovery | 恢复 poisoned config 或 attacker credentials |
同一 physical disk 上的 backup folder 无法防 device failure、theft、corruption 或 destructive admin access。
很多 app 把 ownership、shares、metadata 与 jobs 放在 DB;只有 user files 可能无法重建可用服务。
完美 DB dump 在 uploads、media、object storage 或 external mounts 缺失时也无用。
Checksums 只能证明 bytes copied,不能证明 app 能 restore、migrate、auth users 与 resume jobs。
唯一 decryption key 位于 failed server 时,encrypted backup 会不可恢复。
Credentials、migrations、permissions、updates 未完成前,不要直接公开 half-restored service。
部分 app 不支持 schema downgrade;recovery 可能需要 fresh install + restore。
每个 app 记录 version、config paths、data paths、DB、secret refs、mounts、ports、dependencies、backup method 与 restore order。
跨 independent storage 保留 multiple copies,并至少有一份 separate location,按 data value 调整。
协调 DB export 与 referenced files,让 metadata 与 content 属于同一 recovery point。
Major upgrade 前创建 verified restore point,并记录 source/destination versions。
在 blank VM、spare device 或 isolated machine restore,而不只验证 in-place rollback。
保存 logs、timings、checksums、health checks、user access tests 与 manual fixes。
面向 home-server operator 的简短回答。
有帮助,但不应是唯一 strategy。App-aware export 与 documented restore steps 更利于 selective restore 与 clean-room recovery。
把 configuration、database 与 data directory 视为一个 recovery set;使用 custom apps/themes 时也应保存。
先保护 authoritative media,再保存重建 library experience 所需的 DB/manual curation。
Major architecture changes 后以及按数据价值设定 recurring cadence 做。
不能完全替代。Snapshots 可能与 source 共用 failure domain,仍需 independent retained copies。
创建 app-consistent recovery point,记录 versions,验证 compatibility,并明确 recovery path。
Feedback
匿名反馈只用于判断内容是否真正有用。