twake-drive

linagoraAGPL-3.0活跃维护

Twake Drive 是一个开源的网页版云盘与文件管理器,支持在线存储、整理和共享文件,可作为 Google Drive 的自托管替代方案。

Twake Drive Web App

1.108.0发布于 2026-10-22 08:05 UTC994star165fork同步于 2026-11-10 17:54 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/linagora/twake-drive.git
cd twake-drive
yarn install
yarn watch
cozy-stack serve --appdir drive:/<project_absolute_path>/twake-drive/build/drive --disable-csp
硬件要求按 README 说明

README 未说明硬件要求,仅需 Node/Yarn 开发环境与 cozy-stack 服务

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源版 Google Drive,提供文件树、上传、分享与搜索的 Web 文件管理应用

Twake Drive 是一个开源的网页版云盘与文件管理器,支持在线存储、整理和共享文件,可作为 Google Drive 的自托管替代方案。

核心能力

  • 用文件树组织并浏览文件与文件夹
  • 支持文件与文件夹上传
  • 通过 URL 分享文件与文件夹
  • 支持文件与文件夹搜索
  • 基于 cozy-stack 运行,可 Docker 起开发环境

容易踩的坑

需先按 .nvmrc 切换本地 Node 版本再执行 yarn install;必须用 --appdir 显式指定 build/drive 目录,否则应用无法运行;分享邮件流程需额外运行 MailHog 并给 cozy-stack 配 --mail-port 1025

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本1.108.0
  1. 1.109.0-beta.1pre-release2026-10-29 · 2026-10-29 15:48 UTC
    查看更新说明

    Releasing Twake Drive 1.109.0-beta.1 for beta testing:

    New features

    Sharing and files

    • Public file links can show a preview when shared, on supported stacks. (#4442)
    • The sharing dialog can suggest recipients when contact suggestions are enabled. (#4483)
    • The move dialog shows files for context while choosing a destination. (#4463)

    App integrations

    • Apps can move files using Drive's destination picker, and upload picked files to personal or shared drives. (#4398, #4476)
    • Apps can upload a file from a URL on stacks that support this feature. (#4284)
    • Empty folders in the Twake Space embed now use the Space illustration. (#4407)

    Security

    • Validate OnlyOffice server URLs before loading editor scripts from shared drives. (#4245)
    • Remove sensitive URL details from error reports and enable reporting only when configured. (#4242)

    Bug fixes

    • Fixed contact and calendar files opening in OnlyOffice instead of retaining their original format. (#4482)
    • Fixed text files shared as drives opening in OnlyOffice when their format is unsupported. (commit)
    • Fixed the move dialog waiting indefinitely for folders in a shared drive. (#4472)
    • Fixed PDF autosave in OnlyOffice. (#4444)
    • Fixed the assistant button appearing outside its knowledge-base folders and its composer being covered by the phone keyboard. (#4432, #4473)

    Full Changelog: https://github.com/linagora/twake-drive/compare/1.108.0...1.109.0-beta.1

  2. 1.108.0最新正式版2026-10-22 · 2026-10-22 08:05 UTC

    Releasing Twake Drive 1.108.0 to production:

    New features

    Shared drives and sharing

    • With federated sharing enabled, you can share folders nested inside shared folders. Drive asks for confirmation when reducing access also affects a parent folder. (#4182, #4196)
    • Accept or decline sharing invitations from a banner without leaving Drive. Invitations appear one at a time, and unrelated banners are hidden on sharing pages. (#4289, #4399, #4309)

    Moving and choosing files

    • Browse destinations and create folders in the move dialog, including folders shared with you where you have write access. (#4181, #4190, #4218)
    • Connected apps can restrict file selection by folder, file type, size or count, and select files or folders without creating sharing links. (#4282)
    • Switch between list and grid views in the file picker. Your choice is remembered. (#4426)

    Documents and AI assistant

    • When enabled, the AI assistant can help write documents and presentations, or open beside the file list. (#4285, #4286)
    • PDF editing in OnlyOffice is available when explicitly enabled. PDFs otherwise open in the standard viewer, and read-only access is respected. (#4247, #4441)

    Twake Space

    • Open Drive inside Twake Space, with dialogs that can use the full page. Shared-drive file counts include subfolders when supported by the server. (#4290, #4299, #4296, #4397)

    Languages and performance

    • Completed Spanish, German and Italian translations and corrected missing or incorrect French text. (#4279)
    • Reduced downloads to improve loading performance. (#4278)

    Security

    • Blocked unsafe shortcut links and prevented links opened in a new tab from controlling the original Drive page. (#4186, #4187)
    • The OnlyOffice writing assistant sends its ready notification only to Drive. (#4416)
    • Updated libraries to address known security issues. (#4255, #4261, #4276)

    Bug fixes

    • Fixed opening shared drawings and PDFs from their owner's Drive and showing the latest saved changes when reopening them. PDFs also load correctly in Safari versions before 17.4. (#4180, #4219, #4268)
    • Fixed video playback on mobile and viewer navigation areas that interfered with file interactions. Unsupported videos now show a fallback instead of a broken player. (#4436)
    • Fixed moving files from shared drives and Nextcloud, and into shared folders you own. Successful moves are preserved wh
  3. 1.108.0-beta.2pre-release2026-10-20 · 2026-10-20 15:57 UTC
    查看更新说明

    Releasing Twake Drive 1.108.0-beta.2 for beta testing:

    New features

    File picker

    • You can switch between list and grid views when choosing files. The picker remembers your choice. (#4426)

    Security

    • The OnlyOffice writing assistant sends its ready notification only to Drive. (#4416)

    Bug fixes

    • Declining a shared drive invitation now removes you from its members and removes the drive from your shared files and move destinations. (#4410)
    • Files and sharing shortcuts deleted outside the Bin disappear without reloading the page. (#4413)
    • An invalid folder color no longer prevents Drive from opening. (#4409)
    • PDFs open in the standard viewer by default. Editing them in OnlyOffice is available only when explicitly enabled. (#4441)

    Full Changelog: https://github.com/linagora/twake-drive/compare/1.108.0-beta.1...1.108.0-beta.2

  4. 1.108.0-beta.1pre-release2026-10-15 · 2026-10-15 14:11 UTC
    查看更新说明

    Releasing Twake Drive 1.108.0-beta.1 for beta testing:

    New features

    Shared drives and sharing

    • You can share a folder inside an already shared folder. (#4182)
    • Sharing invitations appear in a banner. Shared-drive invitations can be accepted without leaving Drive. (#4289, #4399)
    • One invitation is shown at a time. Other banners are hidden on sharing pages. (#4309)
    • Drive asks for confirmation before reducing someone's access to a shared folder. (#4196)

    Moving and choosing files

    • The new move dialog uses the file picker to browse destination folders. You can create a folder without leaving the dialog. (#4181, #4190)
    • You can move files into folders shared with you when you have write access. (#4218)
    • Connected apps can limit file selection to a folder, certain file types, a maximum size, or a number of files. (#4282)
    • Connected apps can select files and folders without creating sharing links. (#4282)

    Documents and AI assistant

    • PDFs open in OnlyOffice when it is enabled. Read-only access is respected. (#4247)
    • When enabled, the AI assistant can help write text in documents and presentations. (#4285)
    • When enabled, the assistant can open beside the file list. (#4286)

    Twake Space

    • Drive can open inside Twake Space. (#4290)
    • Drive dialogs can use the full Twake Space page. (#4299)
    • Twake Space shows the number of files in a shared drive, including files in subfolders, when supported by the server. (#4296, #4397)

    Languages and performance

    • Spanish, German and Italian translations are complete. Missing and incorrect French text has also been fixed. (#4279)
    • Drive downloads less code to improve loading performance. (#4278)

    Security

    • Unsafe links in shortcuts are blocked. (#4186)
    • Links opened in a new tab cannot control the original Drive page. (#4187)
    • Updated libraries to address known security issues. (#4255, #4261, #4276)

    Bug fixes

    • Fixed opening shared drawings and PDFs so they use the owner's file. Reopening them now shows the latest saved changes. (#4180, #4219)
    • Fixed moving files from shared drives and Nextcloud, and moving files into shared folders you own. Successful moves are kept when some files cannot be moved. (#4207, #4262, #4193)
    • Fixed file order and navigation in the file picker, and aligned the tabs in the move dialog. Folder lists keep the selected sort order. (#4195, [#4234](https://github
  5. 1.107.1-beta.2pre-release2026-09-18 · 2026-09-18 12:25 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Twake Drive

    About

    What's Drive?

    Twake Drive makes your file management easy. Main features are:

    • File tree
    • Files and folders upload.
    • Files and folders sharing (via URLs)
    • Files and folders search

    Getting Started

    :pushpin: Note: Yarn is the official Node package manager of Twake Drive. Don't hesitate to install Yarn

    Install

    Starting the Drive app requires you to setup a dev environment.

    You can then clone the app repository and install dependencies:

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

    :pushpin: Don't forget to set the local node version indicated in the .nvmrc before doing a yarn install.

    Twake Drive use a standard set of npm scripts to run common tasks, like watch, lint, test, build…

    Run in dev mode

    Using a watcher - with Hot Module Replacement:

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

    Or directly build the app (static file generated):

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

    Your app is available at http://drive.cozy.localhost:8080/#/folder

    Note: it's mandatory to explicit to cozy-stack the folder of the build that should be served, to be able to run the app.

    Run it inside the VM

    You can view your current running app, you can use the cozy-stack docker image:

    # in a terminal, run your app in watch mode
    $ cd twake-drive
    $ yarn watch
    
    # in another terminal, run the docker container
    $ docker run --rm -it -p 8080:8080 -v "$(pwd)/build/drive":/data/cozy-app/drive cozy/cozy-app-dev
    

    Your app is available at http://drive.cozy.tools:8080.

    Advanced case

    Share and send mails in development

    Twake Drive let users share documents from twake to twake.

    Meet Alice and Bob. Alice wants to share a folder with Bob. Alice clicks on the share button and fills in the email input with Bob's email address. Bob receives an email with a « Accept the sharing » button. Bob clicks on that button and is redirected to Alice's twake to enter his own twake url to link both twakes. Bob sees Alice's shared folder in his own twake.

    🤔 But how could we do this scenario on binary cozy-stack development environment?

    If you develop with the cozy-stack CLI, you have to run MailHog on your computer and tell cozy-stack serve where to find the mail server with some options:

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

    This commands assumes you git clone twake-drive in the same folder than you git clone cozy-stack.

    Then simply run mailhog and open http://cozy.tools:8025/.

    Retrieve sent emails

    With MailHog, every email sent by cozy-stack is caught. That means the email address does not have to be a real one, ie. bob@cozy, [email protected] are perfectly fine. It could be a real one, but the email will not reach the real recipient's inbox, say [email protected].

    Living on the edge

    Cozy-ui is our frontend stack library that provides common styles and components accross the whole Twake React apps. You can use it for you own application to follow the official Twake's guidelines and styles. If you need to develop / hack cozy-ui, it's sometimes more useful to develop on it through another app. You can do it by cloning cozy-ui locally and link it to yarn local index:

    git clone https://github.com/cozy/cozy-ui.git
    cd cozy-ui
    yarn install
    yarn link
    

    then go back to your app project and replace the distributed cozy-ui module with the linked one:

    cd twake-drive
    yarn link cozy-ui
    

    You can now run the watch task and your project will hot-reload each times a cozy-ui source file is touched.

    Troubleshooting

    Consider using rlink instead of yarn link

    Cozy-client is our API library that provides an unified API on top of the cozy-stack. If you need to develop / hack cozy-client in parallel of your application, you can use the same trick that we used with cozy-ui: yarn linking.

    Error reporting

    Error reporting is off unless the build is given a collector. Set SENTRY_DSN in the build environment and initSentry will report there; leave it unset and no reporter is initialised at all, which is what a deployment that must not send anything outside its own perimeter wants.

    $ SENTRY_DSN='https://<key>@<your-collector>/<project>' yarn build
    

    The CI build reads it from the SENTRY_DSN repository variable. It is a variable rather than a secret: the DSN ships inside the client bundle and is readable by anyone loading the app.

    Reports are scrubbed before they leave the browser, see src/lib/sentryScrub.js: public pages authenticate with the sharecode carried in their URL, and download and thumbnail links hold their secret in the path.

    Tests

    Tests are run by jest under the hood, and written using chai and sinon. You can easily run the tests suite with:

    $ cd twake-drive
    $ yarn test
    

    For Playwright end-to-end tests, see the E2E test guide.

    :pushpin: Don't forget to update / create new tests when you contribute to code to keep the app the consistent.

    Open a Pull-Request

    If you want to work on Drive and submit code modifications, feel free to open pull-requests! See the contributing guide for more information about how to properly open pull-requests.

    Community

    Localization

    Localization and translations are handled by Transifex.

    As a translator, you can login to Transifex (using your Github account) and claim access to the app repository. Locales are pulled by the pipeline when app is build before publishing.

    As a developer, you must configure the Transifex CLI, and claim access as maintainer to the app repository. Then please only update the source locale file (usually en.json in client and/or server parts), and push it to Transifex repository using the tx push -s command.

    If you were using a transifex-client, you must move to Transifex CLI to be compatible with the v3 API.

    The transifex configuration file is still in an old version. Please use the previous client for the moment https://github.com/transifex/transifex-client/.

    License

    Twake Drive is developed by Linagora and distributed under the AGPL v3 license.