【直播切片工作台】第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
相关文章
|
1月前
|
缓存 人工智能 自然语言处理
阿里云qwen3.7-max、qwen3.7-plus、qwen3.7-flash大模型选择指南:模型能力与价格对比及最新活动
本文聚焦阿里云通义千问Qwen3.7系列三款核心模型,分别面向极致推理、多模态全能、轻量极速三大方向,共享百万级上下文窗口与35小时自治能力。文章从模型特性、适用场景、能力价格对比、限时优惠、选型指南等维度全面拆解,给出分层调度策略,搭配新用户百万Token免费额度,帮助开发者精准选型,兼顾效果与成本。
|
1月前
|
机器学习/深度学习 人工智能 缓存
阿里云百炼产品月报【2026年8月】
阿里云百炼本月重磅升级:Token Plan个人版取消5小时调用限制,新增Qwen3.8-Max/Flash、DeepSeek-V4-Pro等多款大模型;发布Wan3.0-Video全模态视频生成模型;应用广场上新15个行业模板,MCP广场新增42个数据服务;限时组合购68元起,多项后付费享折扣。
527 1
|
1月前
|
存储 人工智能 缓存
【新版】阿里云 百炼大模型平台 产品功能介绍及配置价格表
大模型应用开发链路包含模型选型、推理调用、数据集处理、模型调优、知识库构建、智能体编排、业务上线、成本管控等大量环节,如果分散在多个不同平台完成整套流程,会带来账号管理复杂、接口不统一、数据流转繁琐、成本难以统计等诸多痛点。阿里云百炼是面向开发者与企业打造的一站式大模型开发服务平台,把模型调用、数据集管理、模型微调、专属部署、向量知识库、智能体应用、MCP工具广场、用量计费管控全部整合到统一控制台,既提供开箱即用的海量预训练模型,也支持开发者完成自定义模型优化与业务应用搭建,降低AI应用从原型验证走向正式业务的技术门槛。
333 0
|
10月前
|
数据可视化 前端开发 安全
AgentScope 1.0 全面进化,从原型走向产业落地!
AgentScope全新升级,打造生产级智能体生态:推出开箱即用的Alias、EvoTraders等应用,支持多场景落地;强化基建,实现动态技能扩展、白盒化运行与多语言支持;集成语音交互、数据工程等能力,提供从开发到部署的全链路解决方案。
5292 0
|
10月前
|
JSON API 数据安全/隐私保护
【剪映小助手】批量向现有草稿中添加音频素材
批量向现有草稿中添加音频素材。该接口支持添加多个音频文件到剪映草稿,为视频创建背景音乐、音效、旁白等音频内容。音频将被添加到独立的音频轨道中,不会影响视频内容。
|
6月前
|
存储 缓存 数据库
【开源剪映小助手】核心功能详解
CapCut Mate 是基于 Python 的剪映自动化工具,通过 FastAPI 提供 RESTful 接口,支持草稿管理、媒体处理、效果编辑与视频生成全流程自动化。采用分层模块化架构,具备双文件模板兼容、智能缓存、异步渲染及完善故障排查能力。(239字)
|
5月前
|
JSON 缓存 监控
【剪映小助手】辅助工具接口
CapCut Mate辅助工具接口提供链接提取、贴纸搜索与数据转换三大核心功能,涵盖get_url、search_sticker及多种格式转换API,支持高效素材处理与自动化集成,专为视频创作者优化工作流。(239字)
|
7月前
|
JSON JavaScript 安全
【开源剪映小助手-客户端】Node.js 集成
本文系统介绍 capcut-mate 桌面端 Node.js 与 Electron 的安全集成方案:采用“主进程+预加载桥接+渲染进程”三层架构,通过 contextBridge 有限暴露 API,实现下载管理、文件操作、日志记录及新增的跨平台目录扫描(triggerDirectoryScan)功能,助力 Adobe Premiere Pro 自动识别新草稿。
|
7月前
|
监控 中间件 API
【剪映小助手】故障排除与常见问题
本指南面向capcut-mate用户与运维人员,系统解析安装、部署、运行及排障全流程。涵盖剪映自动化失败、API异常、Docker问题、性能优化与兼容性处理,提供日志分析技巧与精准路径定位,助你高效自助排障。(239字)
|
7月前
|
JSON 运维 安全
【开源剪映小助手】IPC 通信机制
本文系统介绍 CapCut-Mate 桌面端基于 Electron 的 IPC 通信机制,涵盖主/渲染进程协作、预加载脚本安全桥接、IPC 处理程序设计、下载与日志模块实现,以及性能优化与故障排查实践,强调安全性、可维护性与扩展性。(239字)

热门文章

最新文章