备份与恢复
应同时采用两层备份:配置导出便于迁移,而要恢复运行历史和媒体文件则必须进行文件系统快照。
各类备份包含什么
| 备份 | 包含 | 不包含 |
|---|---|---|
| 设置 > 备份与恢复导出 | 全局设置、模板、主播及过滤器、引擎、平台设置、通知渠道/订阅、任务与管道预设、用户和密码哈希 | 录制媒体、会话/任务历史、日志、刷新令牌会话 |
| 文件系统备份 | 实际复制的 DATA_DIR、CONFIG_DIR、OUTPUT_DIR,以及可选 LOG_DIR | 外部上传目标和通知服务中的数据 |
敏感导出
配置导出可能包含平台 Cookie、通知凭据、渠道设置、用户信息和密码哈希。必须加密、限制访问,且不要附加到公开 Issue。
配置导出
在 Web 界面打开设置 > 备份与恢复并下载导出文件。对应 API 为 GET /api/config/backup/export 和 POST /api/config/backup/import。
导入支持两种模式:
merge更新匹配实体,并保留文件中没有的现有实体。replace删除导入文件未包含的现有受管配置。该操作具有破坏性,应先在临时实例验证。
配置导出适合迁移;移除密钥后也可用于版本审查,但它不是数据库备份。
一致的文件系统备份
标准 Docker 布局可按以下流程操作:
- 下载一份最新配置导出。
- 禁止新录制任务或安排维护窗口。
- 执行
docker compose stop,确保 SQLite 和活跃媒体文件一致。 - 快照或复制
DATA_DIR、CONFIG_DIR、OUTPUT_DIR、.env和docker-compose.yml。只有事件保留政策要求时才备份LOG_DIR。 - 执行
docker compose up -d,并验证存活检查。
.env 和备份媒体的保护强度不得低于在线服务。至少保留一份主机外备份,并定期校验完整性。
恢复演练
- 准备空间充足的干净主机,并使用同一固定 Rust-Srec 版本。
- 保持服务停止,把目录恢复到相同绝对路径,并恢复所有权和权限。
- 恢复
.env与 Compose 配置。等价恢复时不要重新生成JWT_SECRET,除非有意让全部访问令牌失效。 - 启动服务并检查
/api/health/live。 - 登录后检查带认证的
/api/health/ready,核对主播和会话,并播放或校验代表性媒体。 - 用一个非关键频道测试录制和管道。
记录恢复耗时和实际丢失的数据时间范围;这才是你的真实 RTO 和 RPO。