19 पॉइंट द्वारा GN⁺ 2025-10-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 से चलाया जाता है
  • यह Docker Compose के जरिए आसान deployment option (docker-compose.minimal.yml) देता है, जिससे local testing और internal deployment आसान हो जाता है
    • web interface को http://localhost/ पर access किया जा सकता है
  • 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_PATH environment 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 टिप्पणियां

 
GN⁺ 2025-10-25
Hacker News की राय
  • यहाँ बहुत से लोग ज़रूरी फीचर्स या बैकअप की बात कर रहे हैं, लेकिन असली महत्वपूर्ण बात यह है कि क्या आप एक कम्युनिटी बना सकते हैं और उसे लंबे समय तक बनाए रख सकते हैं
    open source cloud storage में मेंटेनर थक जाएँ तो वह जल्दी गायब हो सकता है, इसलिए टिकाऊ बिज़नेस मॉडल या contributor base तकनीकी checklist जितने ही महत्वपूर्ण हैं
    साथ ही interoperability को भी कम आंका जाता है। अगर WebDAV या S3 सपोर्ट हो और मौजूदा authentication system के साथ integration हो जाए, तो टीमें इसे कहीं ज़्यादा आसानी से आज़माती हैं
    आखिर में लोग ऐसी सेवा चाहते हैं जो ‘honeymoon period’ खत्म होने के बाद भी गायब न हो। यह progress bar में एक फीचर जोड़ने से कहीं ज़्यादा कठिन है

    • यह शायद टूल के organizational model की कमजोरी हो सकती है, लेकिन मैं कम्युनिटी में हिस्सा नहीं लेना चाहता। मैं बस चाहता हूँ कि यह अच्छे से काम करे
      मैं Syncthing इस्तेमाल करता हूँ, और मुझसे कभी कम्युनिटी में शामिल होने को नहीं कहा गया, फिर भी यह बढ़िया चल रहा है
      लगता है Syncthing की Kastelo नाम की कंपनी enterprise support देकर development cost निकालती है
      मैं भी open source consulting company चलाता हूँ, और कम्युनिटी के बिना भी enterprise contracts से यह अच्छी तरह टिक जाती है
      कम्युनिटी अच्छी बात है, लेकिन लंबे समय में बिज़नेस मॉडल और मार्केटिंग रणनीति ज़्यादा महत्वपूर्ण लगती है
    • व्यक्तिगत रूप से मुझे लगता है कि S3 compatibility object storage का मूल है
      अगर कोई सिस्टम S3 API सपोर्ट करता है, तो किसी भी storage को बदलना आसान हो जाता है। Backblaze, Wasabi, local S3 API वगैरह ज़्यादातर drop-in replacement बन जाते हैं
    • मुझे समझ नहीं आता कि कम्युनिटी इतनी महत्वपूर्ण क्यों है। अगर कोई टूल समस्या हल करता है, तो कम्युनिटी बस मेंटेनेंस का एक तरीका है
  • अब तक इस्तेमाल किए गए self-hosted file sync विकल्पों में Seafile सबसे उपयोगी लगा
    लेकिन server upgrade अभी भी झंझट भरा है। NextCloud या ऐसे मिलते-जुलते टूल मेरे लिए तो पूरी तरह आपदा स्तर के रहे हैं

    • जानना चाहूँगा कि आपको यह आपदा क्यों लगा। हमारी कंपनी में हम NextCloud को 3 साल से बिना किसी समस्या के इस्तेमाल कर रहे हैं
      ज़रूरी plugins भी सब हैं, performance भी अच्छी है, और sync भी एकदम सही है। किसी दूसरे विकल्प को आज़माने की ज़रूरत ही महसूस नहीं हुई
    • मैं Seafile का Docker version चलाता हूँ, और सिर्फ tag बदलने से upgrade बहुत आसान हो जाता है
      पहले NextCloud बड़े repositories पर अटकता था और ज़्यादा शक्तिशाली मशीन चाहिए होती थी
      Seafile तो 2GB RAM वाले ARM board पर भी अच्छे से चलता है
    • मैंने हाल ही में Seafile को सीधे अपने server पर install किया, और backup और security strategy बनाने पर बहुत ध्यान दिया
      testing भी अच्छी तरह की, और sync speed व responsiveness हैरान करने वाली थी
      अब मैं Google Drive से सारे files लाकर इसे अपना main cloud बना चुका हूँ
    • Resilio भी ठीक है। Syncthing अच्छा है, लेकिन मेरे अनुभव में Resilio ज़्यादा तेज़ है और NAT traversal भी बेहतर करता है
    • मैं भी कई सालों से Seafile और Seadrive इस्तेमाल कर रहा हूँ, और subst drive mapping के साथ यह बहुत अच्छा काम करता है
  • अगर इसका नाम Twake Dwive रखा होता तो मज़ेदार होता

  • जैसे दूसरे लोग पूछ रहे हैं, मुझे भी जानना है कि यह NextCloud या ownCloud की तुलना में कैसा है। और क्या इसके Windows/Mac/Mobile clients भी हैं

    • ownCloud के सभी platforms के लिए clients हैं, लेकिन हर platform पर इतने छोटे bugs और reliability issues थे कि मैं इसे इस्तेमाल नहीं कर पाया
    • मैंने NextCloud install करने की कोशिश की थी, और वह पूरी तरह पीड़ादायक अनुभव था
    • मेरे अनुभव में NextCloud एक फूला हुआ PHP monster जैसा है। performance भी कमजोर है, जबकि Twake कहीं हल्का और scope में ज़्यादा स्पष्ट लगता है
  • open source drive tools का भविष्य तीन बातों पर निर्भर करता है

    1. ऐसा सरल sync जो कभी चौंकाए नहीं
    2. ऐसा conflict handling जिसे non-technical लोगों को भी समझाया जा सके
    3. बिना समस्या वाले upgrades
      अगर Twake S3 और LDAP सपोर्ट के साथ यह ठीक से कर ले, तो इसमें संभावना है
      लेकिन असली मुश्किल trust और documentation है। साफ threat model, Drive या Dropbox से migration guide, और headless environment में भी चलने वाला छोटा CLI चाहिए
    • मैं इसमें चौथी चीज़ जोड़ना चाहूँगा: backup verification की आसानी
      एक बार हमारी कंपनी में backup enabled था, लेकिन जब restore करना पड़ा तो सब corrupt निकला। उसके बाद से backup verification मेरी सबसे बड़ी प्राथमिकता है
    • काश एक manual “sync now” button होता। Google Drive में कई बार sync status साफ नहीं होता, और वह काफ़ी निराशाजनक है
  • यह बात थोड़ा अजीब लगती है कि 58.9% TypeScript और 32.6% JavaScript से इतनी high-performance app बनाई जा रही है

    • तो क्या 91.5% JavaScript ही नहीं हुआ? यह मज़ाक है कि TypeScript असली भाषा नहीं है
    • यह app I/O-bound है, इसलिए TS/JS पर चलने में कोई दिक्कत नहीं
    • backend शायद TS में है, frontend JS में। मैं खुद tests को JS में और app code को TS में अलग रखता हूँ
      भाषा की speed से ज़्यादा महत्वपूर्ण वह हिस्सा है जहाँ bottleneck कम हो
    • आजकल startups को TS/JS microservices के साथ event-driven architecture बनाते देखते हुए, यह चुनाव अजीब नहीं लगता
  • थोड़ा विषय से हटकर, क्या Viber या WhatsApp को Google Drive की जगह किसी और backup storage का इस्तेमाल करवाने का तरीका हो सकता है? सोच रहा हूँ कि root करके interface को trick किया जा सकता है या नहीं

    • Android पर इसे बस share-target के रूप में implement किया जा सकता है। PWA से भी इसे आसानी से बनाया जा सकता है
  • क्या ऐसे सिस्टम में सचमुच database की ज़रूरत होती है?
    Unix में तो लगता है कि user और file CRUD, permissions देने भर से काम चल जाना चाहिए। क्या ऐसा कोई पुराना software है जो इसे UI या API में wrap करता हो? चाहे SAMBA protocol पर ही क्यों न हो

    • version history या shared URL जैसी features लागू करनी हों तो DB चाहिए।
      और अगर user group restrictions लगानी हों, तो groups की सीमा (65536) तक बहुत जल्दी पहुँचा जा सकता है
    • Cockpit देखना अच्छा रहेगा। Cockpit Applications में file browsing, permissions editing, upload/download जैसी ज़्यादातर सुविधाएँ मिलती हैं
    • disk operation caching या multi-node sync के लिए metadata storage चाहिए। आखिरकार DB से बचना मुश्किल है
    • मैंने भी ऐसा कुछ सोचा था, और अच्छा लगता अगर Python और fsspec के साथ local या S3/SSH जैसी अलग-अलग filesystems को संभालने वाला Google Drive-स्टाइल interface होता
    • DB इस्तेमाल करने पर users और documents को join करना आसान होता है, या MongoDB indexes और transactions का फायदा लिया जा सकता है
      version metadata manage करना भी आसान हो जाता है, और Windows पर hack करना भी आसान रहता है
  • शायद मेरी प्राथमिकताएँ HN के माहौल से अलग हों, लेकिन मेरे लिए सबसे महत्वपूर्ण feature search है
    कई TB data store करने के बाद एक फोटो ढूँढना भी मुश्किल हो जाता है
    ऐसी image analysis चाहिए जिससे “Nothing Street पर दो लोग” जैसी खोज की जा सके
    अभी इस मामले में Google बहुत आगे है, लेकिन उम्मीद है कि दूसरे cloud भी कभी न कभी इसकी बराबरी करेंगे

  • मैं Syncthing एक बार आज़माने की सलाह दूँगा

    • मैं भी Dropbox student discount खत्म होने के बाद से Syncthing इस्तेमाल कर रहा हूँ। कई सालों से यह स्थिरता से बढ़िया काम कर रहा है
      हालाँकि mobile अनुभव अभी भी थोड़ा rough रहा है। फिर भी web interface से ज़रूरत पड़ने पर files निकाली जा सकती हैं
    • Syncthing शानदार है, लेकिन mobile पर बड़े files संभालने के लिए यह उपयुक्त नहीं है। full-sync तरीका होने से सीमाएँ हैं
    • यह मेरे इस्तेमाल के सबसे भरोसेमंद FOSS tools में से एक है। यह बस काम करता है, और हर platform पर चलता है