Twake Drive – Giải pháp thay thế Google Drive mã nguồn mở
(github.com/linagora)- Twake Drive là một nền tảng lưu trữ đám mây mã nguồn mở cung cấp các tính năng lưu trữ và chia sẻ tệp tương tự Google Drive
- Hỗ trợ triển khai dựa trên Docker, nên có thể chạy dễ dàng trong môi trường cục bộ, đồng thời sử dụng Node.js và MongoDB làm ngăn xếp công nghệ chính
- Có kiến trúc tách biệt frontend và backend, cung cấp môi trường phát triển dựa trên Yarn và tính năng thiết lập đường dẫn lưu trữ tệp cục bộ
- Được phát hành theo giấy phép Affero GPL v3, cho phép doanh nghiệp hoặc tổ chức tự do tùy biến theo hình thức tự host
Tổng quan dự án
- Twake Drive là giải pháp thay thế Google Drive mã nguồn mở do Linagora phát triển, cung cấp khả năng vận hành các tính năng lưu trữ, chia sẻ và cộng tác tệp trên máy chủ riêng
- Hướng đến chủ yếu các tổ chức muốn tránh phụ thuộc vào dịch vụ đám mây và vẫn duy trì quyền sở hữu dữ liệu cùng khả năng kiểm soát bảo mật
- Kho mã nguồn công khai trên GitHub đã đạt hơn 1.000 sao và khoảng hơn 70 fork, đồng thời vẫn đang được bảo trì tích cực
- Dự án áp dụng giấy phép AGPL-3.0, nên khi chỉnh sửa và phân phối lại mã nguồn phải giữ nguyên các điều kiện giấy phép tương tự
Tính năng chính và ngăn xếp công nghệ
- Twake Drive hoạt động dựa trên Node.js (18.x trở lên), MongoDB, Yarn, và được thiết kế với kiến trúc tách biệt frontend và backend
- Frontend được chạy từ thư mục
tdrive/frontend/bằngyarn dev:start - Backend được khởi chạy từ
tdrive/backend/node/vớiyarn devsau khi thiết lập biến môi trường
- Frontend được chạy từ thư mục
- Cung cấp tùy chọn triển khai đơn giản bằng Docker Compose (
docker-compose.minimal.yml), giúp thử nghiệm cục bộ và triển khai nội bộ trở nên thuận tiện- Có thể truy cập giao diện web tại
http://localhost/
- Có thể truy cập giao diện web tại
- Có thể dễ dàng chạy cơ sở dữ liệu bằng lệnh khởi chạy container MongoDB
docker run -p 27017:27017 -d mongo - Có thể tinh chỉnh chi tiết cấu hình thông qua tệp
tdrive/backend/node/config/development.json
Cấu trúc phát triển và triển khai
- Twake Drive tách biệt frontend (dựa trên React) và backend (dựa trên Node.js), đồng thời cho phép chỉ định trực tiếp đường dẫn lưu trữ tệp cục bộ
- Thiết lập vị trí lưu tài liệu thông qua biến môi trường
STORAGE_LOCAL_PATH
- Thiết lập vị trí lưu tài liệu thông qua biến môi trường
- Hỗ trợ chức năng publish-subscribe trong môi trường cục bộ với thiết lập
PUBSUB_TYPE=local - Ứng dụng mặc định chạy trên cổng 3000, với cấu trúc được tối ưu cho môi trường phát triển và kiểm thử
- Bao gồm tệp cấu hình Docker Bake (
docker-bake.hcl) và thiết lập GitHub Actions cho CI/CD, hỗ trợ build và kiểm thử tự động
Mã nguồn và tình trạng kho lưu trữ
- Kho mã gồm 882 commit, 61 nhánh và 46 thẻ, cho thấy lịch sử phát triển được duy trì tích cực
- Tỷ lệ ngôn ngữ chính gồm TypeScript 58.9%, JavaScript 32.6%, SCSS 3.7%, CSS 2.2%, HTML 1.3%, Less 1.0%
Giấy phép và khả năng ứng dụng
- Twake Drive được phát hành theo giấy phép Affero GPL v3, nên khi chỉnh sửa và phân phối lại mã nguồn sẽ đi kèm cùng nghĩa vụ công khai tương ứng
- Doanh nghiệp có thể dựa trên đó để xây dựng hệ thống lưu trữ đám mây nội bộ chuyên dụng hoặc mở rộng theo mô hình SaaS
- Đây được đánh giá là một lựa chọn thay thế có thể đồng thời đạt được giảm chi phí của dịch vụ đám mây thương mại và đảm bảo chủ quyền dữ liệu
1 bình luận
Ý kiến trên Hacker News
Nhiều người ở đây nói về tính năng bắt buộc phải có hay chuyện sao lưu, nhưng điều thực sự quan trọng là có xây dựng được cộng đồng và duy trì nó trong thời gian dài hay không
Vì lưu trữ đám mây mã nguồn mở rất dễ biến mất khi người bảo trì kiệt sức, nên mô hình kinh doanh bền vững hoặc nền tảng cộng tác viên quan trọng không kém gì checklist kỹ thuật
Ngoài ra, khả năng tương tác (interoperability) cũng bị đánh giá thấp. Nếu hỗ trợ WebDAV hay S3 và tích hợp được với các hệ thống xác thực hiện có, các nhóm sẽ dễ thử hơn nhiều
Cuối cùng, mọi người muốn một dịch vụ không biến mất sau khi “giai đoạn trăng mật” kết thúc. Điều đó khó hơn rất nhiều so với việc thêm một thanh tiến trình
Tôi dùng Syncthing, chưa từng bị bảo phải tham gia cộng đồng, mà nó vẫn chạy rất ổn
Có vẻ Syncthing được một công ty tên là Kastelo tài trợ chi phí phát triển bằng cách cung cấp hỗ trợ doanh nghiệp
Tôi cũng điều hành một công ty tư vấn mã nguồn mở, và ngay cả không có cộng đồng thì hợp đồng doanh nghiệp vẫn đủ để duy trì
Cộng đồng cũng tốt, nhưng về dài hạn tôi nghĩ mô hình kinh doanh và chiến lược marketing còn quan trọng hơn
Nếu một hệ thống hỗ trợ S3 API thì gần như bất kỳ loại lưu trữ nào cũng dễ thay thế. Backblaze, Wasabi, local S3 API, v.v. đa số đều có thể thay thế kiểu drop-in
Trong các giải pháp đồng bộ tệp self-hosted mà tôi từng dùng, Seafile là thứ dùng được nhất
Nhưng việc nâng cấp máy chủ vẫn khá phiền. NextCloud hay các công cụ tương tự, theo tiêu chuẩn của tôi, đúng là ở mức thảm họa hoàn toàn
Có đủ mọi plugin cần thiết, hiệu năng tốt, đồng bộ hoàn hảo. Gần như không có lý do gì để thử giải pháp khác
Trước đây NextCloud bị chậm với các repository lớn và cần máy mạnh hơn
Seafile chạy tốt ngay cả trên bo ARM có 2GB RAM
Tôi cũng kiểm thử rất kỹ, và tốc độ đồng bộ cùng độ phản hồi thật sự đáng ngạc nhiên
Giờ tôi đã chuyển toàn bộ file khỏi Google Drive và dùng nó làm đám mây chính
Nếu đặt tên là Twake Dwive thì chắc sẽ vui hơn
Như những người khác đã hỏi, tôi muốn biết nó so với NextCloud hay ownCloud thế nào. Và cũng muốn biết có client cho Windows/Mac/Mobile không
Sống còn của một công cụ drive mã nguồn mở phụ thuộc vào ba điều
Nếu Twake hỗ trợ S3 và LDAP mà vẫn làm tốt các điểm này thì có tiềm năng
Nhưng điều thực sự khó là niềm tin và tài liệu hóa. Cần một threat model rõ ràng, hướng dẫn di chuyển từ Drive hay Dropbox, và một CLI nhỏ có thể chạy cả trong môi trường headless
Trước đây ở công ty tôi, sao lưu vẫn được bật, nhưng đến lúc khôi phục thì hóa ra tất cả đều đã hỏng. Từ sau đó, xác minh sao lưu là ưu tiên số một
Tôi thấy khó hiểu khi một ứng dụng hiệu năng cao như thế này lại được làm bằng 58.9% TypeScript và 32.6% JavaScript
Tôi nghĩ phần ít bị bottleneck hơn tốc độ ngôn ngữ mới là điều quan trọng
Hơi lạc đề một chút, nhưng có cách nào để Viber hay WhatsApp dùng loại lưu trữ sao lưu khác thay cho Google Drive không? Tôi tò mò liệu có thể root máy rồi đánh lừa interface theo kiểu nào đó không
Những hệ thống như thế này có thực sự cần cơ sở dữ liệu không?
Trên Unix, có vẻ chỉ cần CRUD người dùng và tệp, cộng với phân quyền là đủ; có phần mềm cũ nào kiểu bọc mấy thứ đó bằng UI hay API không? Kể cả dựa trên giao thức SAMBA cũng được?
Ngoài ra, nếu muốn giới hạn theo nhóm người dùng thì cũng nhanh chóng chạm mức giới hạn số nhóm (65536)
usersvàdocuments, hoặc tận dụng index và transaction của MongoDBViệc quản lý metadata phiên bản cũng đơn giản hơn, và trên Windows cũng dễ hack hơn
Có lẽ tôi khác không khí chung trên HN, nhưng với tôi tính năng quan trọng nhất là tìm kiếm
Khi bạn lưu trữ đến hàng TB dữ liệu thì tìm một bức ảnh thôi cũng đã khó
Cần một tính năng phân tích hình ảnh để có thể tìm kiểu như “hai người trên phố Nothing Street”
Hiện tại Google vượt trội áp đảo ở điểm này, nhưng tôi hy vọng các đám mây khác rồi cũng sẽ bắt kịp
Tôi khuyên nên thử Syncthing một lần
Chỉ là trải nghiệm trên di động vẫn còn hơi thô. Dù vậy, khi cần gấp thì vẫn có thể lấy file qua giao diện web