Twake Drive – Google Drive का ओपन सोर्स विकल्प
(github.com/linagora)- Twake Drive एक ओपन सोर्स cloud storage platform है, जो Google Drive जैसी file storage और sharing सुविधाएं देता है
- यह Docker-आधारित deployment को सपोर्ट करता है, इसलिए local environment में इसे आसानी से चलाया जा सकता है, और Node.js और MongoDB को मुख्य tech stack के रूप में इस्तेमाल करता है
- इसका frontend और backend अलग-अलग संरचना में हैं, और यह Yarn-आधारित development environment तथा local file storage path configuration सुविधा प्रदान करता है
- यह Affero GPL v3 license के तहत जारी किया गया है, इसलिए कंपनियां या संगठन इसे self-hosted रूप में अपनी जरूरत के अनुसार स्वतंत्र रूप से customize कर सकते हैं
प्रोजेक्ट अवलोकन
- Twake Drive, Linagora द्वारा विकसित Google Drive का ओपन सोर्स विकल्प है, जो file storage, sharing और collaboration सुविधाओं को अपने सर्वर पर चलाने योग्य रूप में उपलब्ध कराता है
- इसका मुख्य लक्ष्य वे संगठन हैं जो cloud service पर निर्भरता से बचते हुए data ownership और security control बनाए रखना चाहते हैं
- GitHub पर प्रकाशित repository को 1,000 से अधिक stars और लगभग 70 forks मिले हैं, और इसका सक्रिय रूप से maintenance किया जा रहा है
- यह प्रोजेक्ट AGPL-3.0 license अपनाता है, इसलिए source code में बदलाव और redistribution के समय वही license शर्तें बनाए रखनी होती हैं
मुख्य सुविधाएं और tech stack
- Twake Drive Node.js(18.x या उससे ऊपर), MongoDB, और Yarn पर आधारित है, और इसे frontend तथा backend के अलग-अलग architecture के साथ डिजाइन किया गया है
- frontend को
tdrive/frontend/directory मेंyarn dev:startसे चलाया जाता है - backend को
tdrive/backend/node/में environment variables सेट करने के बादyarn devसे चलाया जाता है
- frontend को
- यह Docker Compose के जरिए आसान deployment option (
docker-compose.minimal.yml) देता है, जिससे local testing और internal deployment आसान हो जाता है- web interface को
http://localhost/पर access किया जा सकता है
- web interface को
- MongoDB container run command (
docker run -p 27017:27017 -d mongo) के जरिए database को आसानी से शुरू किया जा सकता है - environment configuration को
tdrive/backend/node/config/development.jsonफ़ाइल के जरिए विस्तार से समायोजित किया जा सकता है
development और deployment संरचना
- Twake Drive में frontend (React-आधारित) और backend (Node.js-आधारित) अलग-अलग हैं, और local file storage path को सीधे निर्दिष्ट किया जा सकता है
STORAGE_LOCAL_PATHenvironment variable के जरिए document storage location सेट की जाती है
- PUBSUB_TYPE=local setting के जरिए local environment में publish-subscribe सुविधा उपलब्ध है
- application डिफ़ॉल्ट रूप से port 3000 पर चलती है, और इसकी संरचना development तथा testing environment के लिए optimized है
- इसमें Docker Bake configuration file (
docker-bake.hcl) और CI/CD के लिए GitHub Actions configuration शामिल है, जिससे automated build और testing को सपोर्ट मिलता है
code और repository की स्थिति
- repository में 882 commits, 61 branches, और 46 tags हैं, जो सक्रिय development history को दिखाते हैं
- मुख्य language अनुपात TypeScript 58.9%, JavaScript 32.6%, SCSS 3.7%, CSS 2.2%, HTML 1.3%, Less 1.0% है
license और उपयोग की संभावनाएं
- Twake Drive Affero GPL v3 license के तहत वितरित किया जाता है, इसलिए source code में बदलाव और redistribution के समय समान open-source दायित्व लागू होते हैं
- कंपनियां इसके आधार पर internal-only cloud storage system बना सकती हैं, या इसे SaaS रूप में विस्तारित कर सकती हैं
- इसे commercial cloud services के cost reduction और data sovereignty दोनों हासिल करने वाले विकल्प के रूप में देखा जाता है
1 टिप्पणियां
Hacker News की राय
यहाँ बहुत से लोग ज़रूरी फीचर्स या बैकअप की बात कर रहे हैं, लेकिन असली महत्वपूर्ण बात यह है कि क्या आप एक कम्युनिटी बना सकते हैं और उसे लंबे समय तक बनाए रख सकते हैं
open source cloud storage में मेंटेनर थक जाएँ तो वह जल्दी गायब हो सकता है, इसलिए टिकाऊ बिज़नेस मॉडल या contributor base तकनीकी checklist जितने ही महत्वपूर्ण हैं
साथ ही interoperability को भी कम आंका जाता है। अगर WebDAV या S3 सपोर्ट हो और मौजूदा authentication system के साथ integration हो जाए, तो टीमें इसे कहीं ज़्यादा आसानी से आज़माती हैं
आखिर में लोग ऐसी सेवा चाहते हैं जो ‘honeymoon period’ खत्म होने के बाद भी गायब न हो। यह progress bar में एक फीचर जोड़ने से कहीं ज़्यादा कठिन है
मैं Syncthing इस्तेमाल करता हूँ, और मुझसे कभी कम्युनिटी में शामिल होने को नहीं कहा गया, फिर भी यह बढ़िया चल रहा है
लगता है Syncthing की Kastelo नाम की कंपनी enterprise support देकर development cost निकालती है
मैं भी open source consulting company चलाता हूँ, और कम्युनिटी के बिना भी enterprise contracts से यह अच्छी तरह टिक जाती है
कम्युनिटी अच्छी बात है, लेकिन लंबे समय में बिज़नेस मॉडल और मार्केटिंग रणनीति ज़्यादा महत्वपूर्ण लगती है
अगर कोई सिस्टम S3 API सपोर्ट करता है, तो किसी भी storage को बदलना आसान हो जाता है। Backblaze, Wasabi, local S3 API वगैरह ज़्यादातर drop-in replacement बन जाते हैं
अब तक इस्तेमाल किए गए self-hosted file sync विकल्पों में Seafile सबसे उपयोगी लगा
लेकिन server upgrade अभी भी झंझट भरा है। NextCloud या ऐसे मिलते-जुलते टूल मेरे लिए तो पूरी तरह आपदा स्तर के रहे हैं
ज़रूरी plugins भी सब हैं, performance भी अच्छी है, और sync भी एकदम सही है। किसी दूसरे विकल्प को आज़माने की ज़रूरत ही महसूस नहीं हुई
पहले NextCloud बड़े repositories पर अटकता था और ज़्यादा शक्तिशाली मशीन चाहिए होती थी
Seafile तो 2GB RAM वाले ARM board पर भी अच्छे से चलता है
testing भी अच्छी तरह की, और sync speed व responsiveness हैरान करने वाली थी
अब मैं Google Drive से सारे files लाकर इसे अपना main cloud बना चुका हूँ
अगर इसका नाम Twake Dwive रखा होता तो मज़ेदार होता
जैसे दूसरे लोग पूछ रहे हैं, मुझे भी जानना है कि यह NextCloud या ownCloud की तुलना में कैसा है। और क्या इसके Windows/Mac/Mobile clients भी हैं
open source drive tools का भविष्य तीन बातों पर निर्भर करता है
अगर Twake S3 और LDAP सपोर्ट के साथ यह ठीक से कर ले, तो इसमें संभावना है
लेकिन असली मुश्किल trust और documentation है। साफ threat model, Drive या Dropbox से migration guide, और headless environment में भी चलने वाला छोटा CLI चाहिए
एक बार हमारी कंपनी में backup enabled था, लेकिन जब restore करना पड़ा तो सब corrupt निकला। उसके बाद से backup verification मेरी सबसे बड़ी प्राथमिकता है
यह बात थोड़ा अजीब लगती है कि 58.9% TypeScript और 32.6% JavaScript से इतनी high-performance app बनाई जा रही है
भाषा की speed से ज़्यादा महत्वपूर्ण वह हिस्सा है जहाँ bottleneck कम हो
थोड़ा विषय से हटकर, क्या Viber या WhatsApp को Google Drive की जगह किसी और backup storage का इस्तेमाल करवाने का तरीका हो सकता है? सोच रहा हूँ कि root करके interface को trick किया जा सकता है या नहीं
क्या ऐसे सिस्टम में सचमुच database की ज़रूरत होती है?
Unix में तो लगता है कि user और file CRUD, permissions देने भर से काम चल जाना चाहिए। क्या ऐसा कोई पुराना software है जो इसे UI या API में wrap करता हो? चाहे SAMBA protocol पर ही क्यों न हो
और अगर user group restrictions लगानी हों, तो groups की सीमा (65536) तक बहुत जल्दी पहुँचा जा सकता है
usersऔरdocumentsको join करना आसान होता है, या MongoDB indexes और transactions का फायदा लिया जा सकता हैversion metadata manage करना भी आसान हो जाता है, और Windows पर hack करना भी आसान रहता है
शायद मेरी प्राथमिकताएँ HN के माहौल से अलग हों, लेकिन मेरे लिए सबसे महत्वपूर्ण feature search है
कई TB data store करने के बाद एक फोटो ढूँढना भी मुश्किल हो जाता है
ऐसी image analysis चाहिए जिससे “Nothing Street पर दो लोग” जैसी खोज की जा सके
अभी इस मामले में Google बहुत आगे है, लेकिन उम्मीद है कि दूसरे cloud भी कभी न कभी इसकी बराबरी करेंगे
मैं Syncthing एक बार आज़माने की सलाह दूँगा
हालाँकि mobile अनुभव अभी भी थोड़ा rough रहा है। फिर भी web interface से ज़रूरत पड़ने पर files निकाली जा सकती हैं