Skip to content

生产指南

这一页总结了让 Sandcut 更像“可公开推广产品”的运维默认值。

发布拓扑

建议把应用和文档彻底分开:

  • 应用:根目录 Worker + Container 发布链路
  • 文档apps/docs 发布到独立的 Cloudflare Pages 项目 sandcut-docs

这样文档改版不会影响生产媒体服务。

容量规划

容器的利用率主要由 session pool 和调度器租约策略决定。

建议:

  • session pool 大小与容器 max_instances 保持一致
  • 只有在真实并发压力持续存在时才扩大池子
  • 尽量在租用 warm 容器之前就拒绝过大的输入文件

安全姿态

把媒体处理视为不可信工作负载。

  • 保持 SSRF 防护开启
  • 对远程输入做严格校验
  • 禁止用户直接传原始 FFmpeg 输入参数
  • 生产环境里尽量把 auth 状态与 scheduler 状态分离
  • 不要提交任何本地 secrets 或 .dev.vars

可观测性

当前响应已经带有:

  • 总请求耗时
  • 容器执行耗时
  • 上传耗时

如果要进一步产品化,建议增加:

  • request ID
  • 结构化日志
  • scheduler 每个 session 的指标
  • 按错误码分组的错误率仪表盘

Pages 发布

推荐文档站使用独立 Pages 项目:

设置项建议值
Project namesandcut-docs
Root directoryapps/docs
Framework presetNoneVitePress
Build commandnpm run build
Output directoryapps/docs/.vitepress/dist

常用命令

在仓库根目录执行:

bash
npm --prefix apps/docs install
npm --prefix apps/docs run dev
npm --prefix apps/docs run build
npm --prefix apps/docs run deploy

为沙箱化媒体工作负载而构建。