跳转到正文

生产部署

Rust-Srec 以自托管单节点服务运行。如果必须具备集群或故障转移能力,请先阅读能力边界

参考拓扑

后端、数据库、配置和输出路径应位于同一受信任主机。除非 API 集成确有需要,否则只通过 TLS 反向代理发布前端。

部署基线

  1. 使用 Docker 部署,将两个镜像的 VERSION 固定为 v0.5.1。变更需审批的环境不要使用 latest
  2. JWT_SECRETSESSION_SECRET 生成互不相同的唯一值,并限制 .env 文件权限。
  3. 把宿主机端口绑定到私网地址或回环地址。Compose 的回环映射格式为 127.0.0.1:15275:80127.0.0.1:12555:8080
  4. 在持续维护的反向代理终止 HTTPS,并转发 HostX-Forwarded-ForX-Forwarded-Proto。只要反向代理发送 X-Forwarded-Proto: https,会话 Cookie 就会自动带上 Secure 标记;如果代理无法发送该请求头,请显式设置 COOKIE_SECURE=true
  5. DATA_DIRCONFIG_DIROUTPUT_DIRLOG_DIR 放在持久化存储上;输出卷应与系统盘分开估算和监控。
  6. 按主机容量设置容器资源限制和应用并发限制。从保守值开始,按预计同时录制数和码率压测。
  7. 为录制失败、管道失败、凭据过期和输出根不可写配置通知。
  8. 添加生产频道前完成一次备份与恢复演练。

网络边界

前端通过私有 Compose 网络中的 BACKEND_URL=http://rust-srec:8080 访问 API。普通浏览器使用不要求把宿主机 API 端口暴露到互联网;该端口可仅供本机管理和集成。

必须直接访问 API 时,应通过 HTTPS 代理、限制来源网络并使用独立凭据。Swagger 会展示完整攻击面,默认不应公开。

容量与可靠性

  • SQLite、输出文件和管道处理都受存储延迟影响。未验证锁、原子重命名和持续写入行为前,不要采用不可靠的网络文件系统。
  • 录制峰值和转码峰值是不同工作负载,应分别限制下载、CPU 任务、IO 任务和上传并发数。
  • Docker 重启策略只能恢复进程,不能提供主机级故障转移;主机本身也必须监控。
  • 空闲空间要覆盖活跃录制、管道临时文件和回滚快照。参见存储与容量

上线检查清单

  • 已修改默认密码并禁用不用的账号。
  • 已替换并保护密钥,日志和工单中没有敏感值。
  • 已从用户访问地址验证 TLS 和安全 Cookie。
  • 没有在非必要情况下公开后端和 Swagger。
  • 已验证持久化卷所有权和磁盘空间告警。
  • 已监控存活检查和带认证的就绪检查。
  • 已完成恢复演练和回滚流程。
  • 已审批平台录制授权、保留周期和隐私要求。

继续阅读安全备份与恢复监控

基于 MIT 许可证发布。