feat: update opencut

This commit is contained in:
Sun-ZhenXing
2025-10-15 20:38:26 +08:00
parent 8cf227bd14
commit 37b52545a2
4 changed files with 247 additions and 81 deletions

View File

@@ -4,66 +4,144 @@
OpenCut 是一个开源的视频编辑和音频处理平台。
## 先决条件
## 前置条件
在部署 OpenCut 之前,您需要:
1. 访问 [FreeSound.org](https://freesound.org/) 并创建账户
2. 在账户设置中创建 API 应用
3. 获取客户端 ID 和 API 密钥
2. 在账户设置中创建 API 应用程序以获取您的客户端 ID 和 API 密钥
3. **从源代码构建 OpenCut web 镜像**(参见 [OpenCut GitHub](https://github.com/OpenCut-app/OpenCut)
## 初始化
## 快速开始
1. 复制示例环境文件:
1. 复制示例环境变量文件:
```bash
cp .env.example .env
```
2. 配置必要的环境变量(特别是 FreeSound API 配置)
2. **必需配置** - 编辑 `.env` 并设置以下必需变量:
- `POSTGRES_PASSWORD`:数据库密码(请修改默认值!)
- `SERVERLESS_REDIS_HTTP_TOKEN`Redis HTTP 接口的随机令牌
- `OPENCUT_BETTER_AUTH_SECRET`:身份验证的随机密钥
- `OPENCUT_FREESOUND_CLIENT_ID`:您的 FreeSound 客户端 ID
- `OPENCUT_FREESOUND_API_KEY`:您的 FreeSound API 密钥
3. 启动服务
3. **可选配置** - 如需转录功能,请设置
- `OPENCUT_CLOUDFLARE_ACCOUNT_ID`
- `OPENCUT_R2_ACCESS_KEY_ID`
- `OPENCUT_R2_SECRET_ACCESS_KEY`
- `OPENCUT_R2_BUCKET_NAME`
- `OPENCUT_MODAL_TRANSCRIPTION_URL`
4. 启动服务:
```bash
docker compose up -d
```
4. 访问 Web 界面:<http://localhost:3100>
5. 访问 Web 界面:<http://localhost:3100>
## 服务
- `opencut`: OpenCut Web 应用
- `postgres`: PostgreSQL 数据库
- `redis`: Redis 缓存
- `web`OpenCut Web 应用程序
- `db`PostgreSQL 数据库
- `redis`Redis 缓存
- `serverless-redis-http`:用于 Upstash 兼容性的 Redis HTTP 接口
## 配置
- **Web 应用**: 端口 3100
- **PostgreSQL 数据库**: 端口 5432
- **Redis 缓存**: 端口 6379
- **Redis HTTP 服务**: 端口 8079
### 版本配置
| 变量 | 描述 | 必需 |
| ------------------------- | ------------------- | ---- |
| `FREESOUND_CLIENT_ID` | FreeSound 客户端 ID | 是 |
| `FREESOUND_API_KEY` | FreeSound API 密钥 | 是 |
| `CLOUDFLARE_ACCOUNT_ID` | Cloudflare 账户 ID | 否* |
| `R2_ACCESS_KEY_ID` | R2 访问密钥 ID | 否* |
| `R2_SECRET_ACCESS_KEY` | R2 密钥 | 否* |
| `R2_BUCKET_NAME` | R2 存储桶名称 | 否* |
| `MODAL_TRANSCRIPTION_URL` | Modal 转录服务 URL | 否* |
- `POSTGRES_VERSION`PostgreSQL 版本,默认为 `17`
- `REDIS_VERSION`Redis 版本,默认为 `7-alpine`
- `SERVERLESS_REDIS_HTTP_VERSION`Serverless Redis HTTP 版本,默认为 `latest`
- `OPENCUT_WEB_IMAGE`OpenCut web 镜像名称,默认为 `opencut/web:latest`
*用于转录功能,如果不需要自动字幕功能可以留空。
### 端口配置
## 数据持久化
- `POSTGRES_PORT_OVERRIDE`PostgreSQL 主机端口,默认为 `5432`
- `REDIS_PORT_OVERRIDE`Redis 主机端口,默认为 `6379`
- `SERVERLESS_REDIS_HTTP_PORT_OVERRIDE`Redis HTTP 接口主机端口,默认为 `8079`
- `OPENCUT_WEB_PORT_OVERRIDE`Web 应用程序主机端口,默认为 `3100`
- PostgreSQL 数据存储在 `postgres_data` 卷中
- Redis 数据在内存中,重启后会丢失
### 数据库配置
## 安全说明
- `POSTGRES_USER`:数据库用户名,默认为 `opencut`
- `POSTGRES_PASSWORD`:数据库密码,**必需**
- `POSTGRES_DB`:数据库名称,默认为 `opencut`
- 在生产环境中更改默认的数据库密码
- 更新 `BETTER_AUTH_SECRET` 为一个安全的随机字符串
- 考虑为外部访问设置反向代理
### Redis 配置
- `SERVERLESS_REDIS_HTTP_TOKEN`Redis HTTP 接口的令牌,**必需**
### 应用程序配置
- `TZ`:时区,默认为 `UTC`
- `OPENCUT_BETTER_AUTH_URL`:身份验证服务 URL默认为 `http://localhost:3100`
- `OPENCUT_BETTER_AUTH_SECRET`:身份验证密钥,**必需**
- `OPENCUT_FREESOUND_CLIENT_ID`FreeSound 客户端 ID**必需**
- `OPENCUT_FREESOUND_API_KEY`FreeSound API 密钥,**必需**
### 可选转录配置
留空以禁用自动字幕功能:
- `OPENCUT_CLOUDFLARE_ACCOUNT_ID`Cloudflare 账户 ID
- `OPENCUT_R2_ACCESS_KEY_ID`R2 访问密钥 ID
- `OPENCUT_R2_SECRET_ACCESS_KEY`R2 秘密访问密钥
- `OPENCUT_R2_BUCKET_NAME`R2 存储桶名称
- `OPENCUT_MODAL_TRANSCRIPTION_URL`Modal 转录服务 URL
## 数据卷
- `postgres_data`PostgreSQL 数据存储
## 资源限制
| 服务 | CPU 限制 | 内存限制 | CPU 预留 | 内存预留 |
| --------------------- | -------- | -------- | -------- | -------- |
| web | 2.00 | 2G | 0.50 | 512M |
| db | 2.00 | 1G | 0.50 | 256M |
| redis | 1.00 | 512M | 0.25 | 128M |
| serverless-redis-http | 1.00 | 256M | 0.25 | 64M |
## 安全提示
⚠️ **重要安全建议:**
- **在生产环境部署前修改所有默认密码和密钥**
- 为以下变量使用强随机生成的值:
- `POSTGRES_PASSWORD`
- `SERVERLESS_REDIS_HTTP_TOKEN`
- `OPENCUT_BETTER_AUTH_SECRET`
- 切勿将包含真实凭据的 `.env` 文件提交到版本控制系统
- 考虑设置带 HTTPS 的反向代理以供外部访问
- 在生产环境中将数据库和 Redis 端口限制在内部网络
- 妥善保管 FreeSound API 密钥
## 从源代码构建
由于 OpenCut 不提供预构建的 Docker 镜像,您需要自行构建:
```bash
# 克隆 OpenCut 仓库
git clone https://github.com/OpenCut-app/OpenCut.git
cd OpenCut
# 构建 web 镜像
docker build -t opencut/web:latest -f apps/web/Dockerfile .
# 返回到您的 compose 目录并启动服务
cd /path/to/compose-anything/src/opencut
docker compose up -d
```
## 参考
- [OpenCut 官方仓库](https://github.com/OpenCut-app/OpenCut)
- [原始 docker-compose.yaml](https://github.com/OpenCut-app/OpenCut/blob/main/docker-compose.yaml)
## 许可证
请参考官方 OpenCut 项目的许可信息。
请参考 OpenCut 官方项目的许可信息。