跳转到正文

备份与恢复

应同时采用两层备份:配置导出便于迁移,而要恢复运行历史和媒体文件则必须进行文件系统快照。

各类备份包含什么

备份包含不包含
设置 > 备份与恢复导出全局设置、模板、主播及过滤器、引擎、平台设置、通知渠道/订阅、任务与管道预设、用户和密码哈希录制媒体、会话/任务历史、日志、刷新令牌会话
文件系统备份实际复制的 DATA_DIRCONFIG_DIROUTPUT_DIR,以及可选 LOG_DIR外部上传目标和通知服务中的数据

敏感导出

配置导出可能包含平台 Cookie、通知凭据、渠道设置、用户信息和密码哈希。必须加密、限制访问,且不要附加到公开 Issue。

配置导出

在 Web 界面打开设置 > 备份与恢复并下载导出文件。对应 API 为 GET /api/config/backup/exportPOST /api/config/backup/import

导入支持两种模式:

  • merge 更新匹配实体,并保留文件中没有的现有实体。
  • replace 删除导入文件未包含的现有受管配置。该操作具有破坏性,应先在临时实例验证。

配置导出适合迁移;移除密钥后也可用于版本审查,但它不是数据库备份。

一致的文件系统备份

标准 Docker 布局可按以下流程操作:

  1. 下载一份最新配置导出。
  2. 禁止新录制任务或安排维护窗口。
  3. 执行 docker compose stop,确保 SQLite 和活跃媒体文件一致。
  4. 快照或复制 DATA_DIRCONFIG_DIROUTPUT_DIR.envdocker-compose.yml。只有事件保留政策要求时才备份 LOG_DIR
  5. 执行 docker compose up -d,并验证存活检查。

.env 和备份媒体的保护强度不得低于在线服务。至少保留一份主机外备份,并定期校验完整性。

恢复演练

  1. 准备空间充足的干净主机,并使用同一固定 Rust-Srec 版本。
  2. 保持服务停止,把目录恢复到相同绝对路径,并恢复所有权和权限。
  3. 恢复 .env 与 Compose 配置。等价恢复时不要重新生成 JWT_SECRET,除非有意让全部访问令牌失效。
  4. 启动服务并检查 /api/health/live
  5. 登录后检查带认证的 /api/health/ready,核对主播和会话,并播放或校验代表性媒体。
  6. 用一个非关键频道测试录制和管道。

记录恢复耗时和实际丢失的数据时间范围;这才是你的真实 RTO 和 RPO。

基于 MIT 许可证发布。