精美、可分享的屏幕录制。开源、快速,为希望掌控自身数据的团队而生。
DouRec 是基于开源屏幕录制软件 Cap(AGPLv3)改造的中文版本,面向自媒体创作者。在保留 Cap 的快速屏幕录制、精良本地编辑、即时分享、评论、字幕、AI、团队工作区、自定义域名、自定义 S3 存储及完整自托管能力的基础上,提供中文化体验。
你可以用 DouRec 来制作产品演示、Bug 报告、引导教程、设计评审、工程讲解、异步站会、客户更新,以及任何"展示工作成果比再约一次会议更快"的场景。
- 录制、编辑、分享。 捕获屏幕、摄像头和麦克风,然后分享链接或导出成片。
- 即时模式主打速度。 录制同时上传,停止录制即可获得可分享的链接。
- Studio 模式主打精修。 本地录制后,使用背景、缩放、裁剪、字幕和导出控件进行编辑。
- 为团队打造的桌面应用。 DouRec 支持 macOS 与 Windows,并配有用于查看、分享和管理录像的 Web 仪表盘。
- 掌控你的存储。 可使用 DouRec Cloud、接入你自己的 S3 兼容存储桶、将录像保留在本地,或在需要时自托管整个平台。
- 隐私优先。 支持公开或私下分享、添加密码、使用自有域名,或将敏感录像排除在托管基础设施之外。
- 异步协作。 评论、回应、字幕、观众分析和团队工作区让反馈与视频绑定在一起。
- DouRec AI。 自动生成标题、摘要、可点击的章节、字幕和文字稿。
- 从 Loom 迁移。 可将现有的 Loom 视频导入 DouRec,统一管理你的资料库。
| 模式 | 适用场景 | 工作方式 |
|---|---|---|
| 即时模式 | 快速反馈、Bug 报告、异步更新 | DouRec 在你录制的同时上传,停止录制后立刻给你一个分享链接。 |
| Studio 模式 | 产品演示、教程、发布、客户作品 | DouRec 在本地录制,打开编辑器,让你导出或分享精修后的视频。 |
DouRec 专为不希望把录制工作流锁在黑盒里的个人和团队而设计。
- 使用 DouRec Cloud 获得最快的托管体验。
- 接入 AWS S3、Cloudflare R2、Backblaze B2、MinIO、Wasabi 或其他 S3 兼容的服务商。
- 通过你自己的域名提供分享页面。
- 使用 Docker Compose 自托管 DouRec Web、API、数据库、媒体服务和对象存储。
- 在桌面端
Settings > DouRec Server URL中指向你的自托管实例。
对大多数用户而言,最快的上手路径是:
- 从 GitHub Releases 下载 DouRec 的 macOS 或 Windows 版本。
- 登录或创建账户。
- 选择即时模式或 Studio 模式。
- 录制你的第一个 DouRec。
- 分享链接、导出文件,或保留在本地。
完整产品文档位于 GitHub README。
自托管 DouRec Web 最快的方式是 Docker Compose:
git clone https://github.com/PNGTRID/DouRec.git
cd DouRec
docker compose up -dDouRec 将在 http://localhost:3000 提供。
在未配置邮箱时,登录链接会出现在服务日志里:
docker compose logs cap-web| 方式 | 适用场景 |
|---|---|
| Docker Compose | VPS、家庭服务器及任何支持 Docker 的主机 |
| Railway | 一键托管式部署 |
| Coolify | 使用 docker-compose.coolify.yml 进行自托管 PaaS 部署 |
在生产环境中将部署暴露到公网前,请配置公共 URL 并替换默认的密钥:
CAP_URL=https://cap.yourdomain.com
S3_PUBLIC_URL=https://s3.yourdomain.com邮箱设置、AI 服务商、SSL、存储、生产加固和故障排查详见 自托管文档。
DouRec 是一个 Turborepo 单体仓库,使用 Rust、TypeScript、Tauri、SolidStart、Next.js、Drizzle、MySQL、Tailwind CSS 以及共享的媒体 crate。
环境要求:
- Node.js 20 或更高版本
- pnpm 10.5.2
- Rust 1.88 或更高版本
- 用于运行 MySQL、MinIO 和本地服务的 Docker
安装并初始化仓库:
pnpm install
pnpm env-setup
pnpm cap-setup常用命令:
| 命令 | 用途 |
|---|---|
pnpm dev |
启动完整的本地开发栈 |
pnpm dev:web |
仅启动 Web 应用,不启动桌面应用 |
pnpm dev:desktop |
启动桌面应用 |
pnpm build |
构建工作区 |
pnpm tauri:build |
构建桌面发行版 |
pnpm lint |
运行 Biome 代码检查 |
pnpm format |
使用 Biome 格式化 |
pnpm typecheck |
运行 TypeScript 项目引用检查 |
cargo test -p <crate> |
运行某个 crate 的 Rust 测试 |
数据库命令:
| 命令 | 用途 |
|---|---|
pnpm db:generate |
生成数据库产物 |
pnpm db:push |
推送 schema 变更 |
pnpm db:studio |
打开 Drizzle Studio |
| 路径 | 内容 |
|---|---|
apps/desktop |
基于 Tauri v2 的桌面应用,使用 SolidStart UI 和 Rust 后端 |
apps/web |
基于 Next.js 的 Web 应用,包含营销、文档、仪表盘、分享、API 路由与认证 |
apps/cli |
Rust CLI |
apps/media-server |
Web 应用使用的媒体处理服务 |
apps/discord-bot |
Discord 集成 |
packages/database |
Drizzle schema 与数据库访问层 |
packages/ui |
共享的 React UI |
packages/ui-solid |
共享的 Solid UI |
packages/web-backend |
后端服务层 |
packages/web-domain |
Web 领域模型与类型 |
packages/env |
环境变量校验 |
packages/sdk-embed |
嵌入 SDK |
packages/sdk-recorder |
录制 SDK |
crates/* |
录制、捕获、摄像头、音频、编码、渲染、封装、导出及测试相关的 crate |
scripts/* |
设置、分析、构建与维护工具 |
infra/* |
基础设施配置 |
Web API 基于 Effect 和 @effect/platform HTTP API 构建。桌面端的捕获与导出链路由 Rust crate 提供支撑,从而获得快速的录制、渲染以及平台相关的媒体访问能力。
DouRec 使用 Tinybird 提供观众遥测仪表盘。运行分析命令前,请设置 TINYBIRD_ADMIN_TOKEN 或 TINYBIRD_TOKEN。
| 命令 | 用途 |
|---|---|
pnpm analytics:setup |
从 scripts/analytics/tinybird 部署 Tinybird 的数据源和 pipe |
pnpm analytics:check |
校验 Tinybird 工作区与应用预期是否一致 |
analytics:setup 可能会删除已纳入仓库分析配置之外的 Tinybird 资源。请仅在你打算用本仓库管理的工作区上运行。
DouRec 采用公开开发的方式。欢迎提交 Issue、Pull Request、设计反馈、Bug 报告、文档修正以及赏金任务。
- 在发起 Pull Request 之前,请先阅读 CONTRIBUTING.md。
- 在 GitHub Issues 反馈问题、提交想法。
本软件的部分内容采用如下许可:
cap-camera*与scap-*系列 crate 的代码采用 MIT License 许可,详见 licenses/LICENSE-MIT。- 第三方组件遵循其所有者提供的原始许可。
- 上述未提及的所有其他内容采用 AGPLv3 许可,详见 LICENSE。