19 puan yazan GN⁺ 2025-10-25 | 1 yorum | WhatsApp'ta paylaş
  • Twake Drive, Google Drive'a benzer dosya depolama ve paylaşım özellikleri sunan açık kaynaklı bir bulut depolama platformudur
  • Docker tabanlı dağıtımı desteklediği için yerel ortamda kolayca çalıştırılabilir ve ana teknoloji yığını olarak Node.js ve MongoDB kullanır
  • Frontend ve backend'in ayrıldığı bir mimariye sahiptir; Yarn tabanlı geliştirme ortamı ve yerel dosya depolama yolu yapılandırma özelliği sunar
  • Affero GPL v3 lisansı ile yayımlandığından, şirketler veya kurumlar kendi barındırdıkları yapıda özgürce özelleştirebilir

Proje genel bakışı

  • Twake Drive, Linagora tarafından geliştirilen Google Drive'a açık kaynaklı bir alternatif çözüm olup, dosya depolama, paylaşım ve iş birliği işlevlerini kendi sunucularınızda çalıştırabileceğiniz bir yapıda sunulur
    • Özellikle bulut hizmetlerine bağımlılıktan kaçınmak ve veri sahipliği ile güvenlik kontrolünü korumak isteyen kurumları hedefler
  • GitHub'da yayımlanan depo, 1.000'den fazla yıldız ve 70'ten fazla fork ile aktif biçimde bakım görmektedir
  • Proje, AGPL-3.0 lisansını benimser; bu da kaynak kod değişikliği ve yeniden dağıtım durumunda aynı lisans koşullarının korunmasını gerektirir

Başlıca özellikler ve teknoloji yığını

  • Twake Drive, Node.js(18.x ve üzeri), MongoDB ve Yarn temelinde çalışır; frontend ve backend'in ayrıldığı bir yapı ile tasarlanmıştır
    • Frontend, tdrive/frontend/ dizininde yarn dev:start ile çalıştırılır
    • Backend, tdrive/backend/node/ içinde ortam değişkenleri ayarlandıktan sonra yarn dev ile başlatılır
  • Docker Compose ile basit bir dağıtım seçeneği (docker-compose.minimal.yml) sunar; bu sayede yerel test ve kurum içi dağıtım kolaylaşır
  • MongoDB konteyner çalıştırma komutu (docker run -p 27017:27017 -d mongo) ile veritabanı kolayca ayağa kaldırılabilir
  • Ortam yapılandırması, tdrive/backend/node/config/development.json dosyası üzerinden ayrıntılı biçimde ayarlanabilir

Geliştirme ve dağıtım yapısı

  • Twake Drive'da frontend (React tabanlı) ve backend (Node.js tabanlı) ayrıdır; ayrıca yerel dosya deposu yolu doğrudan belirtilebilir
    • Belgelerin kaydedileceği konum, STORAGE_LOCAL_PATH ortam değişkeni ile ayarlanır
  • PUBSUB_TYPE=local ayarı ile yerel ortamda publish-subscribe işlevi desteklenir
  • Uygulama varsayılan olarak 3000 portunda çalışır ve geliştirme ile test ortamlarına uygun bir yapıya sahiptir
  • Docker Bake yapılandırma dosyası (docker-bake.hcl) ve CI/CD için GitHub Actions ayarları da dahil edilmiştir; böylece otomatik derleme ve test desteklenir

Kod ve depo durumu

  • Depo, 882 commit, 61 branch ve 46 tag içerir; bu da aktif bir geliştirme geçmişine işaret eder
  • Başlıca dil oranları TypeScript %58,9, JavaScript %32,6, SCSS %3,7, CSS %2,2, HTML %1,3 ve Less %1,0 şeklindedir

Lisans ve kullanım potansiyeli

  • Twake Drive, Affero GPL v3 lisansı ile dağıtılır; bu nedenle kaynak kod değişikliği ve yeniden dağıtımda aynı açıklık yükümlülüğü korunur
  • Şirketler bunu temel alarak kurum içi özel bulut depolama sistemi kurabilir veya SaaS biçiminde genişletebilir
  • Ticari bulut hizmetlerine kıyasla maliyet tasarrufu ve veri egemenliği kazanımı sağlayan bir alternatif olarak değerlendirilmektedir

1 yorum

 
GN⁺ 2025-10-25
Hacker News görüşleri
  • Burada birçok kişi olmazsa olmaz özellikler ya da yedekleme hakkında konuşuyor ama asıl önemli olan, bir topluluk oluşturup onu uzun süre ayakta tutup tutamayacağınız
    Açık kaynak bulut depolama, bakımını yapanlar tükenince çok hızlı yok olabildiği için, sürdürülebilir bir iş modeli ya da katkıcı tabanı teknik kontrol listesi kadar önemli
    Bir de birlikte çalışabilirlik (interoperability) küçümseniyor. WebDAV ya da S3 destekliyorsa ve mevcut kimlik doğrulama sistemleriyle entegre oluyorsa ekiplerin denemesi çok daha kolay olur
    Sonuçta insanlar, ‘balayı dönemi’ bittikten sonra da ortadan kaybolmayacak bir hizmet istiyor. Bu da bir ilerleme çubuğu daha eklemekten çok daha zor

    • Bu, aracın organizasyon modelinin bir zayıflığı olabilir ama ben topluluğa katılmak istemiyorum. Sadece düzgün çalışmasını istiyorum
      Ben Syncthing kullanıyorum ve kimse bana bir kez bile topluluğa katılmamı söylemedi ama hâlâ gayet iyi çalışıyor
      Syncthing, geliştirme maliyetlerini karşılamak için Kastelo adlı bir şirketin kurumsal destek vermesine dayanıyor gibi görünüyor
      Ben de açık kaynak danışmanlık şirketi işletiyorum; topluluk olmadan da kurumsal sözleşmelerle gayet sürdürülebiliyor
      Topluluk güzel ama uzun vadede iş modeli ve pazarlama stratejisinin daha önemli olduğunu düşünüyorum
    • Kişisel olarak S3 uyumluluğunun nesne depolamanın özü olduğunu düşünüyorum
      S3 API destekleyen bir sistem varsa, hangi depolama olursa olsun değiştirmesi kolay olur. Backblaze, Wasabi, yerel S3 API vb. çoğu şey doğrudan yerine geçebilir
    • Topluluğun neden önemli olduğunu anlamıyorum. Bir sorunu çözen araçsa, topluluk sadece bakımın bir yolu olur
  • Şimdiye kadar kullandığım self-hosted dosya senkronizasyonu çözümleri içinde Seafile en kullanışlısıydı
    Ama sunucu yükseltmeleri hâlâ zahmetli. NextCloud ya da benzeri araçlar ise benim için tam anlamıyla felaket seviyesindeydi

    • Neden felaket olduğunu düşündüğünü merak ediyorum. Bizim şirkette NextCloud’u 3 yıldır sorunsuz kullanıyoruz
      İhtiyacımız olan tüm eklentiler var, performansı iyi, senkronizasyon da kusursuz. Başka bir alternatif denemek için neredeyse hiç neden yok
    • Ben Seafile’ı Docker sürümüyle çalıştırıyorum; etiketi değiştirince yükseltme çok kolay oluyor
      Eskiden NextCloud büyük depolarda takılıyordu ve daha güçlü bir makine istiyordu
      Seafile ise 2GB RAM’li bir ARM kartta bile iyi çalışıyor
    • Kısa süre önce Seafile’ı doğrudan kendi sunucuma kurdum ve yedekleme ile güvenlik stratejisi oluşturmaya ciddi zaman ayırdım
      Testleri de kapsamlı yaptım; senkronizasyon hızı ve tepki süresi şaşırtıcı derecede iyiydi
      Artık Google Drive’daki tüm dosyaları taşıdım ve bunu ana bulutum olarak kullanıyorum
    • Resilio da fena değil. Syncthing de iyi ama benim deneyimimde Resilio daha hızlı ve NAT geçişi konusunda daha başarılı
    • Ben de yıllardır Seafile ve Seadrive kullanıyorum; subst sürücü eşleme ile çok iyi çalışıyor
  • Adını Twake Dwive koysalar komik olurmuş

  • Başkalarının da sorduğu gibi, bunun NextCloud ya da ownCloud ile kıyaslandığında nasıl olduğunu merak ediyorum. Ayrıca Windows/Mac/Mobile istemcileri olup olmadığını da öğrenmek istiyorum

    • ownCloud’un tüm platformlar için istemcileri var ama her platformda o kadar çok küçük hata ve güvenilirlik sorunu vardı ki kullanamadım
    • NextCloud kurmayı denedim ve tamamen acı verici bir deneyimdi
    • Benim deneyimime göre NextCloud şişkin bir PHP canavarı gibi. Performansı da zayıf, Twake ise çok daha hafif ve kapsamı daha net görünüyor
  • Açık kaynak sürücü araçlarının yaşayıp yaşamaması üç şeye bağlı

    1. Asla sürpriz yapmayan basit senkronizasyon
    2. Teknik olmayan insanlara bile açıklanabilecek çakışma yönetimi
    3. Sorunsuz yükseltmeler
      Twake, S3 ve LDAP desteklerken bunları iyi yaparsa şansı olabilir
      Ama asıl zor olan güven ve dokümantasyon. Net bir tehdit modeli, Drive ya da Dropbox’tan geçiş rehberi ve headless ortamlarda da çalışan küçük bir CLI gerekli
    • Buna dördüncü olarak yedek doğrulamanın kolaylığını eklemek isterim
      Eskiden bir şirkette yedekleme etkin görünüyordu ama geri yüklemeye kalkınca hepsinin bozuk olduğu ortaya çıkmıştı. O günden beri yedek doğrulama benim için en öncelikli konu
    • Elle kullanılabilen bir “şimdi senkronize et” düğmesi olmasını isterdim. Google Drive’da senkronizasyon durumunun belirsiz olması bazen çok sinir bozucu oluyor
  • Böyle yüksek performanslı bir uygulamanın %58.9 TypeScript ve %32.6 JavaScript ile yapılmış olması bana tuhaf geliyor

    • O zaman %91.5’i JavaScript olmuyor mu? TypeScript’in gerçek bir dil olmadığı şakası yani
    • Bu uygulama I/O-bound olduğu için TS/JS ile çalışmasında sorun yok
    • Görünüşe göre backend TS, frontend ise JS. Ben testleri JS, uygulama kodunu ise TS olarak ayırıyorum
      Bence dilin hızından çok darboğaz olmayan kısımlar daha önemli
    • Bugünlerde girişimlerin TS/JS mikroservislerle olay güdümlü mimari kurduğunu görünce, bu tercih garip gelmiyor
  • Biraz konu dışı ama, Viber ya da WhatsApp’ın Google Drive yerine başka bir yedekleme depolaması kullanmasını sağlamanın bir yolu var mı? Root atıp arayüzü kandırmak gibi bir şey mümkün olur mu diye merak ediyorum

    • Android’de bu basitçe share-target olarak uygulanabilir. PWA ile de kolayca yapılabilir
  • Böyle bir sistemde gerçekten veritabanı gerekli mi?
    Unix’te kullanıcı ve dosya CRUD’u ile yetkilendirme yeterli gibi geliyor; bunu UI ya da API ile saran eski yazılımlar var mı? SAMBA protokolü tabanlı olsa bile?

    • Sürüm geçmişi ya da paylaşım URL’leri gibi özellikleri uygulamak için DB gerekir.
      Ayrıca kullanıcı grubu kısıtları koymak isterseniz grup sayısı sınırına (65536 grup) çok çabuk ulaşırsınız
    • Cockpit’e bakmak iyi olabilir. Cockpit Applications üzerinden dosya gezintisi, izin düzenleme, yükleme/indirme gibi işlevlerin çoğunu sağlıyor
    • Disk işlemlerini önbelleğe almak ya da çoklu düğüm senkronizasyonu için metadata depolaması gerekir. Sonuçta DB kullanmamak zor
    • Ben de bunu düşünmüştüm; Python ve fsspec ile yerel ya da S3/SSH gibi çeşitli dosya sistemlerini ele alan, Google Drive tarzı bir arayüz güzel olurdu
    • DB kullanırsanız users ve documents tablolarını join etmek ya da MongoDB indeksleri ve transaction’larından yararlanmak kolaylaşır
      Sürüm metadata’sını yönetmek de basitleşir ve Windows’ta da hacklemek kolay olur
  • Muhtemelen HN havasından farklı düşünüyorum ama benim için en önemli özellik arama
    Birkaç TB veri depolamaya başlayınca tek bir fotoğrafı bile bulmak zorlaşıyor
    “Nothing Street üzerindeki iki kişi” gibi aramalar yapabilmek için görüntü analizi yapan bir özellik gerekli
    Şu anda Google bu alanda ezici biçimde önde ama diğer bulutların da bir gün yetişmesini umuyorum

  • Bir kez Syncthing denemenizi öneririm

    • Ben de Dropbox öğrenci indirimim bittikten sonra Syncthing kullanmaya başladım. Yıllardır kararlı şekilde çok iyi çalışıyor
      Yalnız mobil deneyim hâlâ biraz pürüzlüydü. Yine de acil durumlarda dosya almak için web arayüzü işe yarıyor
    • Syncthing harika ama mobilde büyük dosyaları yönetmek için uygun değil. Tam senkronizasyon yaklaşımı nedeniyle sınırlamaları var
    • Kullandığım FOSS araçlar arasında en çok güvendiğim araç bu. Sadece çalışıyor ve tüm platformlarda çalışıyor