生产指南
这一页总结了让 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 name | sandcut-docs |
| Root directory | apps/docs |
| Framework preset | None 或 VitePress |
| Build command | npm run build |
| Output directory | apps/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