9 puan yazan GN⁺ 4 시간 전 | 2 yorum | WhatsApp'ta paylaş
  • Chatto, grup ve ekip sohbetleri için bir uygulamadır; Slack, Teams ve Discord gibi grup sohbet uygulamalarına benzer, ancak daha kompakt ve hızlı bir kullanım hissi hedefler
  • Yalnızca çalıştırılabilir dosyayla bir sunucu ayağa kaldırır ve kendi frontend’ini de sunar; bu sayede kişisel altyapıya nispeten kolayca dağıtılabilir
  • Her sunucu tek bir topluluktan sorumludur; sunucular arası federasyon veya üçüncü taraf izleme/analitik içermez
  • Kişisel veriler ve sohbet verileri, kullanıcıya özel anahtarlarla bekleme durumunda şifrelenir; hesap silindiğinde ilgili anahtar imha edilir
  • Yaklaşık son 1 yıldır geliştirilen bir grup/ekip sohbet uygulamasıdır ve resmi olarak açık kaynak hâline geldiği için herkes tarafından doğrudan işletilebilir

Self-hosting için yayınlanan Chatto

  • Chatto, yaklaşık son 1 yıldır geliştirilen bir grup/ekip sohbet uygulamasıdır ve resmi olarak açık kaynak hâline geldiği için herkes tarafından doğrudan işletilebilir
  • En hızlı çalıştırma yöntemi Homebrew kullanmaktır
brew install chattocorp/tap/chatto  
chatto init  
chatto run  
  • Kurulum adımları Getting Started Guide içinde görülebilir
  • Slack, Teams ve Discord gibi grup sohbet uygulamalarıyla benzer bir kullanım alanını hedeflerken, daha kompakt ve hızlı bir kullanım hissini öne çıkarır
  • Gerçek çalışma hâli Chatto HQ Community üzerinden görülebilir

Sunucu yapısı ve güvenlik modeli

  • En temel biçiminde tek bir çalıştırılabilir dosyayla sunucu ayağa kaldırılabilir; sunucu kendi frontend’ini de birlikte sağlar
  • Kaynak kullanımı düşüktür; kişisel veriler ve sohbet verileri, kullanıcıya özel anahtarlarla bekleme durumunda tamamen şifrelenir
    • Kullanıcı hesabını sildiğinde ilgili kullanıcı anahtarı imha edilir
  • Her Chatto sunucusu tek bir topluluğu çalıştırır
    • Sunucular arasında veri federasyonu yoktur
    • Üçüncü taraf izleme veya analitik de yoktur
    • Aynı anda birden fazla sunucuda bulunmak istenirse istemci her sunucuya doğrudan bağlanır
    • Birden fazla topluluk barındırmak için birden fazla Chatto süreci çalıştırmak yeterlidir
  • Sesli/görüntülü arama ve ekran paylaşımı yerleşik olarak desteklenir
    • Aramalar uçtan uca şifrelenir
    • Katılımcı sayısını artırma, kullanıcının altyapısının kaldırabileceği kapsama kadar mümkündür

Dağıtım dosyaları ve işletim kaynakları

Chatto Cloud ve ücretli hosting

  • Chatto Cloud yakında açık betaya girmeyi planlıyor ve yalnızca ücretli Chatto sunucusu hosting’i sunuyor
    • Premium abonelik, reklam veya başka ek unsurlar yok; yalnızca hosting sunuluyor
  • Çıkış anındaki altyapı Avrupa ve Avrupa sahipli altyapıdan oluşacak
    • Daha fazla bölgenin 2027 başında kullanıma sunulması planlanıyor
    • Tüm Chatto Cloud sunucuları otomatik ölçekleme, her gece tam veri yedeklemesi ve kesintisiz sürüm yükseltmeleri sunar
  • Chatto Cloud, lock-in oluşturmayan bir yaklaşımı benimsiyor
    • Chatto Cloud’da barındırılan sunucular self-hosted sunucularla %100 uyumludur
    • Veriler istenildiği zaman taşınarak Chatto Cloud içine veya dışına aktarılabilir

0.4 durumu ve 1.0.0’a kadar plan

  • Mevcut Chatto sürümü 0.4
    • Production kullanım için yeterince kararlı kabul ediliyor
    • Ancak hâlâ birkaç önemli özellik eksik
    • Planın tamamı Chatto Roadmap üzerinden görülebilir
  • Chatto 0.5’in odağı güvenlik özellikleri ve istemci iyileştirmeleri
    • İçerik bildirme ve moderasyon özellikleri dahil edilecek
    • Özellikle çoklu sunucu özelliklerini iyileştirmeye odaklanılacak
  • Chatto 1.0.0’a yaklaşık 6–12 ay içinde ulaşılması bekleniyor
    • O zamana kadar breaking change’ler olabilir
    • Self-hosting kullanıcılarının yeni sürümler çıktığında güncellemeye hazır olması gerekir
  • Sürüm haberleri veya Chatto Cloud beta başlangıç bildirimleri Chatto announcements bülteniyle alınabilir; gönderim sıklığı yaklaşık ayda 1 kezdir

2 yorum

 
click 28 분 전

Mattermost kullanıyorum; sürekli Enterprise tarafına yönlendiriyorlar ve OSS sürümünün özelliklerini buduyorlar.
Yeterince olgunlaşırsa Mattermost'tan geçiş yapacak bir araç yazmayı denemek isterim.

 
GN⁺ 4 시간 전
Hacker News yorumları
  • Kendi altyapınızda self-host etmeyi çok kolay olacak şekilde tasarlamış olmaları hoşuma gitti. Dokümantasyona (https://docs.chatto.run/) bakınca Chatto’nun küçük, bağımsız bir binary olarak dağıtıldığı; yerleşik akış kalıcılığı motoru olan hafif mesaj broker’ı NATS kullandığı ve harici S3 uyumlu nesne depolamanın da yapılandırılabildiği söyleniyor.
    Gerçek aramalar LiveKit (Apache-2.0) ile çalışıyor ve Chatto ile birlikte dağıtılması gerekiyor; NATS’te olduğu gibi dağıtım örneğinin gerekli bağlantı yapılandırmasını göstermesi de güzel. Sözde kalmayan, gerçek kılavuzları olan harika bir proje.

    • Gerçekten çok iyi. Daha fazla seçenek olması her zaman iyidir. Yine de dokümantasyona bakınca masaüstü uygulaması olup olmadığı konusunda kafam karıştı.
      Ekran görüntülerinde var gibi görünüyor ama onu indirmeye dair bir doküman bulamadım.
    • Cloudflare veya Vercel gibi kolay, ucuz ya da neredeyse ücretsiz yerlere de kurulup kurulamayacağını merak ediyorum.
  • Hendrik’i birkaç yıldır tanıyorum; şimdiye kadar karşılaştığım geliştiriciler arasında en yeteneklilerden biri. Bu projenin de çok hızlı başarılı olacağından eminim.
    Projenin kendisi de ilginç, ama özellikle ajan tabanlı kodlama kullanarak tek başına geliştirmiş olması etkileyici.

    • Yaklaşık 30 yıldır şahsen tanıyorum ve hâlâ şimdiye kadar tanıştığım en zeki, en deneyimli ve en meraklı geliştiricilerden biri.
      Genel olarak iyi biri ve her zaman yeniden birlikte çalışmak isterim.
    • Onun yaptığı başka ilginç şeyler var mı merak ediyorum.
    • Bir ara ilgimi çekmişti, ama tam tersine bu söz beni uzak durmam gerektiğine ikna etti.
  • Şirketlere satmayı düşünüyorsanız “kullanıcı hesabını silince kullanıcıya özel anahtarları yok ederiz” kısmını düşünmek gerekiyor. İş mesajları kullanıcıya değil işverene aittir; bu yüzden soft delete gerekir.

    • Böyle durumlarda kullanıcının kendi hesabını doğrudan silememesini sağlamak yeterli olabilir. Yine de Chatto kullanıcılarının ve sağlayıcılarının çoğu için silme hakkına otomatik olarak uyum sağlayan bir yaklaşım iyi görünüyor.
    • İşverenler hedef müşteri olmayabilir.
  • Portekizcede “chato”nun “sıkıcı” anlamına gelmesi güldürdü. Ama bu, kurup kullanması çok kolay görünüyor.
    Daha fazla sıkıcı yazılımı memnuniyetle karşılarım.

    • “Can sıkıcı” anlamına da gelebilir. Bir proje ya da şirket adı seçmeden önce, en azından kullanıcı sayısına göre ilk 10 dilde kötü bir anlamı olup olmadığını her zaman aramak iyi olur.
      Portekizce/İspanyolcada NSFW argo olma ihtimali epey sık çıkıyor.
  • Güzel. Ancak web sitesinin hiçbir yerinde mobil desteği olup olmadığını anlayamıyorum.
    Şirketi ya da arkadaşları taşımak için mobil destek şart.

    • Planda var gibi görünüyor.
      https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
    • iOS uygulamasına bildirim göndermek için bildirimi uygulama yayıncısının göndermesi gerektiğini unutmamak lazım. Yani bir olay iletim proxy servisi çalıştırmanız gerekir.
      Mattermost, Element/Matrix ve muhtemelen ActivityPub istemcilerinin bir kısmı ya da tamamı bunu bu şekilde yapıyor gibi. Aksi hâlde sunucuyu self-host etmek, istemci uygulamayı da App Store ve Apple geliştirici programı maliyeti üzerinden kendiniz dağıtmanız gerektiği anlamına gelir.
  • Takip etmeye devam edeceğim. Şu anda Mattermost kullanıyoruz ama fiyatlandırma yapısı oldukça değişken ve enterprise’a odaklı; bu yüzden şimdilik özellikleri epey kısıtlı açık kaynak sürümü kullanmaya devam ediyoruz.
    Üstelik görüntülü aramalar da yetersizdi; Chatto’da bunun olması güzel.

  • Çift lisans kullanılmasının nedenini merak ediyorum. Go backend AGPL, TypeScript frontend ise Apache 2.0 gibi görünüyor.
    Neden tamamını AGPL yapmadıklarını merak ediyorum.

    • Backend’i AGPL yapmak, birinin onu servis olarak host etmesini engelleyebilir. AGPL, hosting’i de dağıtım saydığı için host eden herkes kodunu açmak zorunda kalır.
      Bu yüzden kendi Cloud’unu işletmek için yumuşak bir münhasırlık sağlar. Öte yandan frontend’de özelleştirme, white-label vb. şeylere izin vermek için daha izin verici bir lisans daha mantıklı.
      Grafana iyi bir örnek. 2021’de Apache’den AGPLv3’e geçmelerinin nedeni, cloud sağlayıcılarının değiştirilmiş sürümleri katkı yapmadan host etmesini önlemekti; eklentileri ise Apache lisansında tuttular.
    • AGPL, diğer tarafların Go backend’i kullanarak rakip bir cloud servisi işletmesini engeller. Frontend üzerinde pek etkisi yoktur; sadece enterprise kullanıcıları ürkütür.
  • Self-host ettikten sonra indirme, kurulum ve oturum açma ön ayarlarını yapan bir paket ya da bağlantı oluşturulabilse gerçekten iyi olurdu. Belirli bir kişiye bağlı özel yükleyici ya da yapılandırma betiği gibi bir şey.
    Amaç onboarding sürtünmesini mümkün olduğunca azaltmak. Bağlantının yanlışlıkla paylaşılması gibi güvenlik etkileri olabilir, ancak küçük self-host örneklerinde bunlar görece kolay hafifletilebilir gibi görünüyor. Yalnızca yerel hesapta çalışacak şekilde de yapılabilir.
    Böyle olursa bir arkadaşa “gel burada benimle sohbet et” bağlantısı göndermek kolaylaşır ve “zaten Discord kullanıyorum, böyle şeyleri kurmak istemiyorum” tepkisi konusunda endişelenmek gerekmez.

    • “Sana instance bağlantısı vereyim, oradan kaydol”dan öte ne beklediğini merak ediyorum. Discord tarzı rollerle birleştirip kanal görünürlüğünü ve izinleri rollerle sınırlayabilirsiniz.
      Başkası kaydolsa bile örneğin “iç grup” rolünü vermeyebilirsiniz. Tek kullanımlık token içeren davet bağlantısı gibi bir şey mi kastediliyor, merak ediyorum.
  • Çok iyi. Geçmişte benzer bir fikir düşünmüştüm; birçok şirket bildirimleri toplayacak ve basit bot işlemleri yapacak bir şey istiyor ama mutlaka belirli bir sohbet sağlayıcısına bağlı kalmak istemiyor.
    Çeşitli entegrasyonların frontendi ya da yalnızca dahili sohbet olarak kullanılabilirse gerçekten ilginç olur.

  • Mattermost ile karşılaştırıldığında Chatto’nun artılarını ve eksilerini bilmek isterim.
    Ayrıca Chatto backend’inin Go ile yazılmış olması çok sevindirici. Go bu tür kullanım için çok uygun.