【直播切片工作台】第6章:环境搭建与本地开发流程

简介: 本章详解本地开发全流程:Go/PostgreSQL/FFmpeg环境搭建、配置初始化、服务启动与接口验证,并支持无capcut-mate时的容器化联调,兼顾安全性、可复现性与开发效率。(239字)

第6章:环境搭建与本地开发流程

本章面向想要跑起本项目的开发者:从 Go/PostgreSQL/ffmpeg 前置条件,到 config.yaml 准备、envinit 初始化、webserver 启动、接口冒烟验证,以及本地没有 capcut-mate 时的降级开发模式。内容以 README 的流程为骨、以代码事实为肉。

流程

本地开发的标准路径是五步:

  1. 装前置:Go 1.25+、PostgreSQL 14+、ffmpeg(ASR 抽音频与切片裁剪都用它;Docker 镜像已内置,本地需自行安装并保证在 PATH 中)。
  2. 拉依赖与配置:go mod download;cp internal/config/config.yaml.example internal/config/config.yaml,填入数据库连接、对象存储、APP_ASR_API_KEY、APP_LLM_API_KEY 等密钥。
  3. 初始化数据库:go run ./cmd/envinit init(建表 + 种子数据,见第 13、14 章);默认账号 admin/admin,生产环境立刻 reset-password 改密。
  4. 启动服务:go run ./cmd/webserver,监听 http://localhost:30000。
  5. 验证:curl http://localhost:30000/health 返回 {"status":"ok"};登录接口 POST /openapi/live-mixer/v1/auth/login 换取 JWT;打开 http://localhost:30000/swagger/index.html 查看全部接口契约。

密钥可以用环境变量临时覆盖而不改 yaml(Windows PowerShell:$env:APP_LLM_API_KEY="sk-xxx"),CI 与共享机器上避免把密钥写进文件。测试则一条 go test ./... 全量跑(前端在 frontend 目录 pnpm test)。

构建产物两个二进制:go build -o webserver.exe ./cmd/webserver 与 envinit.exe,与 Docker 镜像里的 /app/envinit 一致。

实现

本地开发的一个高频痛点是「没有 capcut-mate」——草稿生成无法本地闭环。仓库给出的解法是只起外部依赖容器:docker compose up -d capcut-mate nginx(在 backend/docker 下),然后把 capcut_mate.base_url 指向 http://localhost:81。这样 nginx 反代 capcut-mate,本地 Go 进程把它当成远端草稿服务,完整链路即可调试。

若干代码事实支撑这条流程:

  • config.Load("") 传空路径时完全走「内嵌默认 + 环境变量」,所以最小启动甚至不需要 yaml(但数据库等密钥必须给全,否则启动即 Fatal)。
  • envinit 的 init 等价于 schema + seed;reinit 先 DropAllTables 再重建(清空重建,危险操作仅用于开发);reset-password -p 直接改 admin 密码——这些子命令见第 13 章。
  • 前端本地启动(frontend 目录):pnpm dev 起 Vite 开发服务器,API 地址由环境配置指向本地或远端后端(src/utils/config.ts 统一收敛,支持 VITE_ 变量与运行时配置)。
  • cmd/test/main.go 提供临时试验入口:写一次性验证代码放这里,不污染正式入口与业务包。

开发-提交链路上还有质量门禁:根目录 husky pre-commit 对暂存的前端文件跑 lint-staged(eslint + prettier + stylelint);CI 在 push 后跑 Go 全量测试与前端构建(第 50 章)。

📌 设计决策

  • 不内置数据库容器:README 明确「服务不内置数据库」,要求自备 PostgreSQL——避免用户误用临时库丢数据,也简化镜像职责。
  • ffmpeg 走 PATH 查找而非固定路径:同一份代码兼容本地开发(系统安装)与容器(镜像内置)。
  • 本地联调 capcut-mate 用 compose 单独拉起:外部依赖容器化、业务代码本地跑,是「混合开发」的标准姿势。

代码示例

环境变量覆盖配置的完整启动序列(README 同款):

# 1. 准备本地配置
cp internal/config/config.yaml.example internal/config/config.yaml
# 编辑 config.yaml 填入数据库 / 存储 / 密钥

# 2. 建表 + 种子数据(默认账号 admin/admin)
go run ./cmd/envinit init

# 3. 启动(可用环境变量覆盖密钥)
APP_LLM_API_KEY=sk-xxx go run ./cmd/webserver

# 4. 冒烟验证
curl http://localhost:30000/health
curl -X POST http://localhost:30000/openapi/live-mixer/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"admin"}'

无 capcut-mate 本地闭环时,指向容器化的草稿服务:

cd backend/docker
docker compose up -d capcut-mate nginx
# 然后在 config.yaml 中:
# capcut_mate:
#   base_url: http://localhost:81

小结

  • 五步启动:前置 → 配置 → envinit → webserver → 冒烟;密钥优先环境变量。
  • capcut-mate 缺席时单独容器化拉起并指 base_url,链路完整可调试。
  • reinit/reset-password 等运维动作全部收敛在 envinit,不进主服务。

思考题

  1. 如何用 Docker 只起 PostgreSQL 而让其余全部本地跑?相比全容器化开发各有什么收益?
  2. 若团队多人共用一个开发数据库,envinit 的种子数据会产生什么冲突,如何规避?

项目信息

  • GitHub仓库:github.com/Chyona/live-mixer
  • 项目案例:gogoshine.com
相关文章
|
19天前
|
缓存 人工智能 自然语言处理
阿里云qwen3.7-max、qwen3.7-plus、qwen3.7-flash大模型选择指南:模型能力与价格对比及最新活动
本文聚焦阿里云通义千问Qwen3.7系列三款核心模型,分别面向极致推理、多模态全能、轻量极速三大方向,共享百万级上下文窗口与35小时自治能力。文章从模型特性、适用场景、能力价格对比、限时优惠、选型指南等维度全面拆解,给出分层调度策略,搭配新用户百万Token免费额度,帮助开发者精准选型,兼顾效果与成本。
|
26天前
|
机器学习/深度学习 人工智能 缓存
阿里云百炼产品月报【2026年8月】
阿里云百炼本月重磅升级:Token Plan个人版取消5小时调用限制,新增Qwen3.8-Max/Flash、DeepSeek-V4-Pro等多款大模型;发布Wan3.0-Video全模态视频生成模型;应用广场上新15个行业模板,MCP广场新增42个数据服务;限时组合购68元起,多项后付费享折扣。
475 1
|
21天前
|
存储 人工智能 缓存
【新版】阿里云 百炼大模型平台 产品功能介绍及配置价格表
大模型应用开发链路包含模型选型、推理调用、数据集处理、模型调优、知识库构建、智能体编排、业务上线、成本管控等大量环节,如果分散在多个不同平台完成整套流程,会带来账号管理复杂、接口不统一、数据流转繁琐、成本难以统计等诸多痛点。阿里云百炼是面向开发者与企业打造的一站式大模型开发服务平台,把模型调用、数据集管理、模型微调、专属部署、向量知识库、智能体应用、MCP工具广场、用量计费管控全部整合到统一控制台,既提供开箱即用的海量预训练模型,也支持开发者完成自定义模型优化与业务应用搭建,降低AI应用从原型验证走向正式业务的技术门槛。
274 0
|
3月前
|
缓存 编解码 运维
【开源剪映小助手】核心功能特性
capcut-mate 是面向剪映(CapCut)的自动化脚本与API平台,基于FastAPI构建,支持草稿管理、多素材批量装配(视频/音频/图片/字幕/特效)、编辑效果配置及异步视频生成,兼具本地缓存与剪映自动化导出能力。
|
9月前
|
数据可视化 前端开发 安全
AgentScope 1.0 全面进化,从原型走向产业落地!
AgentScope全新升级,打造生产级智能体生态:推出开箱即用的Alias、EvoTraders等应用,支持多场景落地;强化基建,实现动态技能扩展、白盒化运行与多语言支持;集成语音交互、数据工程等能力,提供从开发到部署的全链路解决方案。
5240 0
|
3月前
|
JSON 缓存 人工智能
【剪映小助手】媒体处理接口
CapCut Mate 是基于 FastAPI 的剪映自动化媒体处理接口,支持视频、音频、图片、贴纸的批量添加与轨道管理,提供草稿创建/保存/获取及标准化错误处理,助力高效、可控的AI视频编辑流程。(239字)
|
4月前
|
人工智能 编解码 监控
【开源剪映小助手】视频生成接口
Capcut Mate视频生成接口提供云端异步渲染服务,支持提交任务(/gen_video)与实时查询状态(/gen_video_status),具备进度跟踪、多格式输出、错误恢复及API密钥验证等功能,适用于各类AI视频创作场景。(239字)
|
5月前
|
编解码 缓存 API
【开源剪映小助手】草稿管理接口
本文档详解剪映草稿管理三大核心API:创建、保存及获取草稿文件列表,涵盖请求参数、响应格式、错误码、URL规则与最佳实践,助力开发者快速集成稳定高效的草稿系统。(239字)
|
3月前
|
缓存 监控 Java
【剪映小助手】视频处理接口
视频处理接口是CapCut Mate核心模块,支持批量添加视频并提供时间范围、透明度、缩放、遮罩、转场、音量等高级编辑功能;新增场景时间线智能变速能力,自动计算播放速度,实现精准时间同步与节奏控制。(239字)
|
5月前
|
Linux 测试技术 开发者
【开源剪映小助手】开发者指南
capcut-mate 是开源剪映自动化工具,基于 FastAPI + Electron 构建,支持跨平台草稿管理、媒体处理与视频导出。采用分层架构、条件依赖与优雅降级机制,确保 Windows/Linux 兼容性与一致开发体验。(239字)

热门文章

最新文章