第 1 课

clone、.env 与 docker compose 起栈

在本机 clone 仓库、填写 .env,并用 docker compose 拉起 SupoClip,打开 localhost:3107。

图文25 分钟

课程目录第 1 / 2 课

学习位置仅保存在当前浏览器,有效期 180 天。

01 / 图文教材

图文讲义

clone、.env 与 docker compose 起栈

本课按 SupoClip 官方 README「Quick Start」、docs/setup.md、QUICKSTART.md 与 自托管教程 整理。
目标:在本机 clone 仓库、写好 .env、用 Docker Compose 拉起整栈,浏览器打开 **http://localhost:3107**。
主要来源:supoclip.com · GitHub FujiwaraChoki/supoclip

你将得到什么

  • 本机可访问的 SupoClip 前端:http://localhost:3107
  • 后端 API:http://localhost:8000(交互文档 /docs)
  • 一组 healthy 的 Docker 服务(frontend / backend / worker / postgres / redis)
  • .env 里至少配好转写密钥 + 一个 LLM 提供商

课前准备

  1. 已安装 Docker Desktop(或带 Compose 的 Docker Engine)与 Git。可用 docker info 确认守护进程在跑。
  2. 准备密钥(官方 Required credentials):
    • AssemblyAI API Key(默认转写路径):https://www.assemblyai.com/
    • 至少一个 LLM:Google / OpenAI / Anthropic / OpenRouter 之一的 Key,或本机 Ollama(无云 Key)
  3. 磁盘与网络:首次 docker compose up --build 会拉 Python/Node 依赖,官方自托管文估计约 5–10 分钟(视网速与 CPU)。
  4. 本课走 自托管(默认 SELF_HOST=true),不启用 Stripe 计费。

端口提醒(重要): 官方模板 FRONTEND_PORT=3107。旧 .env 若没有该键,宿主机端口可能是 3001。不要默认去开 localhost:3000——那不是当前文档里的地址。

一、SupoClip 是什么(30 秒)

SupoClip 是开源 AI 剪辑工具(AGPL-3.0):喂入长视频(播客、访谈、VOD),由 LLM 选出 3–7 个更适合传播的片段,做人脸居中竖裁、词级字幕、钩子标题,可选 B-roll。你可以:

方式说明
托管站https://www.supoclip.com/ — 免运维
自托管Docker Compose(本课)
iOSApp Store 上的 SupoClip
MCP / REST仓库 mcp/ 与 Settings 里的 API Key

本课只做自托管起栈;下一课在本机 UI 里提交第一个任务。

二、clone 并复制环境文件

在终端执行(官方原文可直接抄):

git clone https://github.com/FujiwaraChoki/supoclip.git
cd supoclip
cp .env.example .env

对照结果:

  • 当前目录是 supoclip,且存在 .env(由 .env.example 复制而来)。
  • ls docker-compose.yml(或 compose.yaml)能看到 Compose 文件。

三、编辑 `.env`:必填键

用编辑器打开根目录 .env。下面给一套最小可用的云端配置(与 README Quick Start / docs/setup.md 示例一致;密钥请换成你自己的,课程里只用占位符):

ASSEMBLY_AI_API_KEY=YOUR_ASSEMBLY_AI_API_KEY
LLM=google-gla:gemini-3-flash-preview
GOOGLE_API_KEY=YOUR_GOOGLE_API_KEY

# 本地也建议改掉占位密钥(自托管教程:openssl rand -base64 32)
BETTER_AUTH_SECRET=YOUR_BETTER_AUTH_SECRET
# 若日后改成托管计费模式才强依赖;本地自托管可先占位
BACKEND_AUTH_SECRET=YOUR_BACKEND_AUTH_SECRET

生成随机密钥(官方自托管教程写法):

openssl rand -base64 32

把输出分别填进 BETTER_AUTH_SECRET(以及你决定填写的其他 secret 字段)。

换其他 LLM(任选其一,与密钥成对)

官方要求:LLM 的前缀必须和你填的 Key 对应,否则任务会在分析阶段失败。

OpenAI:

LLM=openai:gpt-4
OPENAI_API_KEY=YOUR_OPENAI_API_KEY

Anthropic:

LLM=anthropic:claude-3-5-sonnet-20241022
ANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY

Google(README 示例):

LLM=google-gla:gemini-3-flash-preview
GOOGLE_API_KEY=YOUR_GOOGLE_API_KEY

Ollama(本机,无云 Key):

LLM=ollama:gpt-oss:20b
# Docker Desktop 常可留空,容器经 host.docker.internal 访问宿主机 Ollama
# OLLAMA_BASE_URL=http://host.docker.internal:11434/v1

详细本地 Whisper + Ollama 网络说明见官方:https://www.supoclip.com/blog/self-host-supoclip-docker#local

可选但常见

变量作用
FRONTEND_PORT=3107宿主机前端端口(模板默认)
PEXELS_API_KEY=...开启 AI B-roll(没有则 UI 会提示不可用)
SELF_HOST=true默认自托管:关计费、无限本机生成次数
BACKEND_CPU_ONLY=true模板默认:CPU 版 Torch(含 Apple Silicon 场景)

对照结果:

  • .env 里 ASSEMBLY_AI_API_KEY(若用 AssemblyAI)非空、无多余空格。
  • LLM= 与对应 *_API_KEY(或 Ollama)成对出现。
  • = 两侧没有意外空格(QUICKSTART 排错要点)。

四、启动整栈

推荐:官方 start 脚本

./start.sh

脚本会检查 .env 与 Docker、构建镜像并启动服务(QUICKSTART)。

或手动 Compose(官网首页 / setup.md)

docker compose up -d --build
# 若本机只有旧版 CLI,也可用:
# docker-compose up -d --build

首次构建可能要数分钟。跟日志:

docker compose logs -f
# 或只看后端 / worker:
# docker compose logs -f backend
# docker compose logs -f worker

另开一个终端看健康状态:

docker compose ps

对照结果(成功时你会看到):

  • docker compose ps 里至少这些服务在跑且多为 healthy(setup.md):
    • supoclip-frontend
    • supoclip-backend
    • supoclip-worker
    • supoclip-postgres
    • supoclip-redis
  • 浏览器打开 http://localhost:3107 能看到首页(不是「无法连接」)。
  • http://localhost:8000/docs 能打开 FastAPI 文档;可选再测:
curl -f http://localhost:8000/health

若前端连不上:用 docker compose port frontend 3107 看实际映射端口;旧部署可能是 3001(troubleshooting.md)。不要死磕 3000。

Compose 起了什么(便于排错)

服务角色宿主机端口(默认)
frontendNext.js + 鉴权代理3107
backendFastAPI8000
workerARQ:下载 / 转写 / 分析 / 渲染无对外端口
postgres用户与任务数据(容器内)
redis队列与进度6379(常绑本机)

自托管博客还提到可选 mcp(9100);不用 MCP 时可 docker compose stop mcp。本课验收以核心五服务为准。

五、首启检查清单(setup.md First-Run Checklist 前半)

  1. 打开 http://localhost:3107
  2. 能进入注册 / 登录页(Better Auth,邮箱密码)
  3. docker compose ps 无持续 Restarting
  4. 改过 .env 后若行为异常,按官方:
docker compose down
docker compose up -d --build

警告:docker compose down -v 会删掉 named volumes(数据库与上传)——本地实验才用。

六、常见起栈失败(本课够用)

现象先查
容器起不来docker info;docker compose logs -f;.env 是否缺失
前端页面空白 / 连不上端口是 3107 还是 3001?docker compose port frontend 3107
Login Invalid OriginNEXT_PUBLIC_APP_URL / BETTER_AUTH_URL 必须与浏览器地址完全一致(含协议与端口;localhost ≠ 127.0.0.1)
Apple Silicon 很慢官方说明 backend/worker 走 linux/amd64 模拟;BACKEND_CPU_ONLY=true 避免下 NVIDIA 包,但不启用 Apple GPU

本课小结

步骤命令/动作成功信号
Clonegit clone + cp .env.example .env有 .env
密钥AssemblyAI + LLM 成对;改 BETTER_AUTH_SECRET无空占位(你已替换)
起栈./start.sh 或 docker compose up -d --buildps healthy
打开浏览器 3107;可选 8000/docs首页可访问

下一课:注册账号 → 粘贴 YouTube / 上传视频 → 跟进度 → 下载首批 9:16 字幕片,并对照「缺 AssemblyAI / LLM Key」时的失败表现。