部署指南
August 3, 2026 · View on GitHub
本地创作工作站
npm ci
npm run build
npm start
服务默认仅监听 127.0.0.1:4174。FFmpeg、ImageMagick 和 Chrome/Chromium 必须在 PATH 中,或者通过 CHROME_PATH 指定浏览器。
Docker Compose
cp .env.example .env
docker compose up --build -d
docker compose logs -f openshorts
项目、输出、任务数据和上传素材分别挂载到 projects、out、data 和 public/uploads。升级容器前应备份这些目录。
ASR 与生成服务
容器内的 OPENSHORTS_ASR_COMMAND 必须指向容器能够执行的程序。如需调用宿主机 ASR,建议单独封装 HTTP/命令适配器并挂载只读模型目录。ComfyUI 使用 COMFYUI_URL,不要将未认证的 ComfyUI 端口暴露到公网。
网络安全
内置服务没有账号系统。对外部署时应使用 Caddy、Nginx 或其他反向代理提供 TLS、身份验证、请求大小限制和访问日志。不要把 .env、参考声音或未授权素材提交到仓库。
跨站写请求防护
即使只监听 127.0.0.1,Studio 开着的时候你浏览的任何网页都能向它发请求——覆盖工程、触发渲染、读取工程内容。只配 CORS 挡不住:CORS 只让浏览器读不到响应,请求本身仍会在服务端执行。
因此所有会改状态的方法(POST / PUT / PATCH / DELETE)都会在服务端按 Origin 校验:
- 默认放行
http://127.0.0.1:{PORT}、http://localhost:{PORT}及 Vite 开发端口4173(含 IPv6 形式)。 - 不带
Origin的请求放行——curl、CI 脚本和 CLI 不是浏览器攻击面。 - 其余来源返回 403,响应里会列出当前允许列表。
从局域网地址或反向代理域名访问时需要显式放行:
OPENSHORTS_ALLOWED_ORIGINS="http://192.168.1.5:4174,https://studio.example.com" npm start
设为 * 可退回旧的全开行为,但只应在完全可信的网络里使用。