返回目录
开源项目文档办公类新手

Twake Drive —— 开源的 Google Drive 替代方案(Web 应用)

Twake Drive 是 Linagora 开发、基于 AGPL v3 开源的网盘 Web 应用,提供文件树、文件与文件夹上传、通过 URL 分享以及文件与文件夹搜索,被定位为 Google Drive 的开源替代品。

0 次阅读2026/09/14 发布
Twake Drive —— 开源的 Google Drive 替代方案(Web 应用) 来源图片

社区作者 · zZz

它解决什么问题

Twake Drive 是一个开源的文件管理 Web 应用,官方定位为“The open-source alternative to Google Drive”(Google Drive 的开源替代方案)。

主要功能:

  • 文件树(File tree)
  • 文件与文件夹上传
  • 文件与文件夹分享(通过 URL)
  • 文件与文件夹搜索

技术背景:项目是 Twake 系列 React 应用之一,前端复用团队自研的 cozy-ui 组件与样式库,API 层使用 cozy-client(在 cozy-stack 之上提供统一 API),运行时依赖 cozy-stack 来托管构建产物(build 目录)并本地提供应用服务,官方 Node 包管理器为 Yarn,本地 Node 版本以仓库中的 .nvmrc 为准。

开发与协作:使用标准 npm scripts 处理 watch、lint、test、build 等常见任务;测试由 jest 驱动,用 chai 与 sinon 编写,另有 Playwright 端到端测试(见 E2E test guide);代码贡献通过 Pull-Request,需参考 contributing guide;国际化与翻译由 Transifex 管理,源语言文件通常为 client 和/或 server 部分的 en.json。

适用对象:想自建/研究开源网盘与文件共享方案的个人与团队、需要基于 cozy-stack 与 cozy-ui 二次开发的 React 前端工程师、参与 Twake 生态贡献与翻译的社区成员。

许可证:由 Linagora 开发,按 AGPL v3 许可证分发。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

准备环境

  1. 安装 Yarn:官方说明 Yarn 是 Twake Drive 的官方 Node 包管理器,建议先安装 Yarn。
  1. 按仓库文档先完成 dev environment(开发环境)配置。
  1. 在 y install 之前,务必把本地 Node 版本切换为 .nvmrc 中指定的版本。

安装(克隆仓库并安装依赖)

命令
git clone https://github.com/linagora/twake-drive.git
命令
cd twake-drive
命令
yarn install

以开发模式运行(方式一:使用带 Hot Module Replacement 的 watcher)

命令
cd twake-drive
命令
yarn watch

$ cozy-stack serve --appdir drive:/<project_absolute_path>/twake-drive/build/drive --disable-csp

以开发模式运行(方式二:直接构建出静态文件)

命令
cd twake-drive
命令
yarn build

$ cozy-stack serve --appdir drive:/<project_absolute_path>/twake-drive/build/drive

首次运行访问地址:http://drive.cozy.localhost:8080/#/folder 注意:必须显式告诉 cozy-stack 需要服务的 build 目录,否则无法运行应用。

在 VM(Docker)中运行 终端 A,以 watch 模式运行应用:

命令
cd twake-drive
命令
yarn watch

终端 B,运行 docker 容器:

命令
docker run --rm -it -p 8080:8080 -v "$(pwd)/build/drive":/data/cozy-app/drive cozy/cozy-app-dev

访问地址:http://drive.cozy.tools:8080

进阶:在开发环境中测试分享与发信 若使用 cozy-stack CLI 开发,需要在本机运行 MailHog,并通过参数告知 cozy-stack serve 邮件服务器位置(该命令假定 twake-drive 与 cozy-stack 克隆在同一目录):

命令
./cozy-stack serve --appdir drive:../twake-drive/build --mail-disable-tls --mail-port 1025

然后运行 mailhog 并打开 http://cozy.tools:8025/ 。MailHog 会截获 cozy-stack 发出的每一封邮件,因此收件地址不必是真实地址(bob@cozy、[email protected] 均可);即使是真实地址(如 [email protected]),邮件也不会真正到达对方邮箱。

进阶:与 cozy-ui / cozy-client 联调

  1. 本地克隆并链接 cozy-ui:
命令
git clone https://github.com/cozy/cozy-ui.git
命令
cd cozy-ui
命令
yarn install
命令
yarn link
  1. 回到应用项目,用链接版本替换分发的 cozy-ui 模块:
命令
cd twake-drive
命令
yarn link cozy-ui

cozy-client(在 cozy-stack 之上提供统一 API 的库)需要并行开发时可用同样的 yarn link 技巧。 疑难提示:考虑用 rlink 替代 yarn link。

  1. 之后运行 watch 任务,当 cozy-ui 源文件被改动时项目会热重载。

运行测试

命令
cd twake-drive
命令
yarn test

测试底层由 jest 运行,使用 chai 与 sinon 编写。Playwright 端到端测试参见 E2E test guide。提示:贡献代码时不要忘记更新或新增测试,以保持应用一致。

提交代码 如需修改代码,可自由发起 Pull-Request,具体规范见 contributing guide。

国际化(Transifex)

  • 译者:用 GitHub 账号登录 Transifex 并申请该应用仓库的访问权限。语言包会在应用构建发布前由流水线拉取。
  • 开发者:配置 Transifex CLI 并以 maintainer 身份申请访问,只更新源语言文件(通常为 client 和/或 server 中的 en.json),再用 tx push -s 推送到 Transifex 仓库。
  • 如果此前使用 transifex-client,需迁移到 Transifex CLI 以兼容 v3 API;当前 transifex 配置文件仍是旧版本,暂时请使用旧客户端 https://github.com/transifex/transifex-client/ 。

常见问题

应用跑不起来:确认 cozy-stack serve 已显式指定要服务的 build/drive 目录,且已执行

可复制命令
yarn watch

可复制命令
yarn build

  • 依赖安装异常:确认已在 yarn install 前切换到 .nvmrc 指定的 Node 版本。
  • 开发环境收不到分享邮件:需要在开发环境启动 MailHog,并用 --mail-disable-tls --mail-port 1025 启动 cozy-stack。

来源教程配图

banner
配图 1 · banner查看原图
booking-screen
配图 2 · booking-screen查看原图

适用场景

作为 Google Drive 的开源替代
自建文件网盘与文件管理服务
通过 URL 在团队成员之间分享文件与文件夹
在文件树中上传
组织和搜索文件与文件夹
基于 cozy-stack
cozy-ui
cozy-client 二次开发 React 前端应用
在开发环境中通过 MailHog 调试分享邮件的收发与链接流程
参与开源协作:提交 Pull-Request
补充单元测试与 Playwright 端到端测试
通过 Transifex 参与应用的多语言本地化翻译