Twake Drive – Google Drive'a açık kaynaklı bir alternatif
(github.com/linagora)- 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/dizinindeyarn dev:startile çalıştırılır - Backend,
tdrive/backend/node/içinde ortam değişkenleri ayarlandıktan sonrayarn devile başlatılır
- Frontend,
- 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- Web arayüzüne
http://localhost/üzerinden erişilebilir
- Web arayüzüne
- 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.jsondosyası ü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_PATHortam değişkeni ile ayarlanır
- Belgelerin kaydedileceği konum,
- 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
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
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
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
Ş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
İhtiyacımız olan tüm eklentiler var, performansı iyi, senkronizasyon da kusursuz. Başka bir alternatif denemek için neredeyse hiç neden yok
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
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
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
Açık kaynak sürücü araçlarının yaşayıp yaşamaması üç şeye bağlı
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
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
Böyle yüksek performanslı bir uygulamanın %58.9 TypeScript ve %32.6 JavaScript ile yapılmış olması bana tuhaf geliyor
Bence dilin hızından çok darboğaz olmayan kısımlar daha önemli
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
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?
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
usersvedocumentstablolarını join etmek ya da MongoDB indeksleri ve transaction’larından yararlanmak kolaylaşırSü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
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