9 Punkte von GN⁺ 4 시간 전 | 2 Kommentare | Auf WhatsApp teilen
  • Chatto ist eine App für Gruppen- und Team-Chats, ähnlich wie Slack, Teams oder Discord, zielt aber auf ein kompakteres und schnelleres Nutzungserlebnis ab
  • Der Server lässt sich allein mit der ausführbaren Datei starten und liefert auch ein eigenes Frontend mit, sodass er sich vergleichsweise einfach auf eigener Infrastruktur bereitstellen lässt
  • Jeder Server ist für eine Community zuständig; Federation zwischen Servern sowie Tracking oder Analytics durch Drittanbieter gibt es nicht
  • Persönliche Daten und Chat-Daten werden mit nutzerspezifischen Schlüsseln im Ruhezustand verschlüsselt; bei Löschung eines Kontos wird der entsprechende Schlüssel verworfen
  • Es handelt sich um eine Gruppen- und Team-Chat-Anwendung, die seit rund einem Jahr entwickelt wird und nun offiziell Open Source ist, sodass sie jeder selbst betreiben kann

Chatto für Self-Hosting veröffentlicht

  • Chatto ist eine Gruppen- und Team-Chat-Anwendung, die seit rund einem Jahr entwickelt wird und nun offiziell Open Source ist, sodass sie jeder selbst betreiben kann
  • Der schnellste Weg zum Start ist die Nutzung von Homebrew
brew install chattocorp/tap/chatto  
chatto init  
chatto run  
  • Die Installationsschritte sind im Getting Started Guide zu finden
  • Chatto zielt auf ähnliche Einsatzzwecke wie Gruppen-Chat-Apps à la Slack, Teams oder Discord ab, betont dabei aber ein kompakteres und schnelleres Nutzungserlebnis
  • Die tatsächliche Funktionsweise lässt sich in der Chatto HQ Community ansehen

Serverarchitektur und Sicherheitsmodell

  • In der grundlegendsten Form kann der Server mit einer einzigen ausführbaren Datei gestartet werden; der Server stellt auch sein eigenes Frontend bereit
  • Der Ressourcenverbrauch ist gering, und persönliche Daten sowie Chat-Daten werden mit nutzerspezifischen Schlüsseln vollständig im Ruhezustand verschlüsselt
    • Wenn ein Nutzer sein Konto löscht, wird der entsprechende Nutzerschlüssel verworfen
  • Jeder Chatto-Server betreibt eine einzelne Community
    • Es gibt keine Daten-Federation zwischen Servern
    • Ebenso gibt es kein Tracking und keine Analytics durch Drittanbieter
    • Wer gleichzeitig auf mehreren Servern sein möchte, verbindet den Client direkt mit jedem Server
    • Um mehrere Communities zu hosten, genügt es, mehrere Chatto-Prozesse auszuführen
  • Sprach- und Videoanrufe sowie Screen Sharing werden nativ unterstützt
    • Anrufe sind Ende-zu-Ende-verschlüsselt
    • Die Zahl der Teilnehmer lässt sich bis zu dem Umfang skalieren, den die eigene Infrastruktur verkraftet

Distributionsdateien und Betriebsressourcen

Chatto Cloud und kostenpflichtiges Hosting

  • Chatto Cloud soll bald in die öffentliche Beta gehen und bietet ausschließlich kostenpflichtiges Hosting für Chatto-Server an
    • Es gibt keine Premium-Abos, Werbung oder sonstige Zusatzkomponenten, sondern nur Hosting
  • Die Infrastruktur zum Launch besteht aus europäischer und in europäischem Besitz befindlicher Infrastruktur
    • Weitere Regionen sollen Anfang 2027 starten
    • Alle Chatto-Cloud-Server bieten Auto-Scaling, nächtliche vollständige Daten-Backups und Versions-Upgrades ohne Downtime
  • Chatto Cloud ist darauf ausgelegt, keinen Lock-in zu erzeugen
    • In Chatto Cloud gehostete Server sind zu 100 % mit selbst gehosteten Servern kompatibel
    • Daten können jederzeit migriert und in Chatto Cloud hinein oder aus Chatto Cloud heraus bewegt werden

Stand von 0.4 und Plan bis 1.0.0

  • Die aktuelle Chatto-Version ist 0.4
    • Sie gilt als stabil genug für den Produktionseinsatz
    • Einige wichtige Funktionen fehlen jedoch noch
    • Der vollständige Plan ist in der Chatto Roadmap einsehbar
  • Der Fokus von Chatto 0.5 liegt auf Sicherheitsfunktionen und Client-Verbesserungen
    • Enthalten sind Funktionen zum Melden von Inhalten und zur Moderation
    • Besonderer Schwerpunkt liegt auf der Verfeinerung der Multi-Server-Funktionalität
  • Chatto 1.0.0 wird voraussichtlich in etwa 6 bis 12 Monaten erreicht
    • Bis dahin kann es Breaking Changes geben
    • Self-Hosting-Nutzer sollten darauf vorbereitet sein, bei Veröffentlichung neuer Versionen Updates einzuspielen
  • Neuigkeiten zu Releases oder Benachrichtigungen zum Start der Chatto-Cloud-Beta können über den Newsletter Chatto announcements bezogen werden; die Versandfrequenz liegt bei etwa einmal pro Monat

2 Kommentare

 
click 28 분 전

Ich nutze derzeit mattermost, aber es wird ständig in Richtung Enterprise gedrängt und der Funktionsumfang der OSS-Version wird immer weiter beschnitten.
Wenn es ausgereift genug ist, würde ich gern ein Tool schreiben, um von mattermost zu migrieren.

 
GN⁺ 4 시간 전
Hacker-News-Kommentare
  • Gut ist, dass es offenbar so konzipiert wurde, dass Self-Hosting auf der eigenen Infrastruktur sehr einfach ist. Laut der Dokumentation (https://docs.chatto.run/) wird Chatto als kleine, eigenständige Binärdatei ausgeliefert, verwendet den schlanken Message-Broker NATS mit integrierter Stream-Persistenz-Engine und kann außerdem mit externem S3-kompatiblem Objektspeicher konfiguriert werden
    Die eigentlichen Anrufe laufen über LiveKit (Apache-2.0) und müssen zusammen mit Chatto bereitgestellt werden; gut ist auch, dass dafür wie bei NATS eine Beispielkonfiguration für die Anbindung gezeigt wird. Ein großartiges Projekt, das nicht nur darüber redet, sondern echte Anleitungen liefert

    • Wirklich großartig. Mehr Auswahl ist immer gut. Allerdings ist mir anhand der Dokumentation nicht klar, ob es eine Desktop-Anwendung gibt
      Auf den Screenshots sieht es so aus, aber ich konnte keine Dokumentation finden, wo man sie herunterladen kann
    • Ich frage mich, ob man das auch an Orten installieren kann, die so einfach und günstig oder nahezu kostenlos sind wie Cloudflare oder Vercel
  • Ich kenne Hendrik seit einigen Jahren, und er ist einer der talentiertesten Entwickler, die ich je getroffen habe. Ich bin sicher, dass dieses Projekt sehr schnell erfolgreich sein wird
    Das Projekt selbst ist interessant, aber besonders beeindruckend ist, dass er es allein unter Einsatz von agentischem Coding entwickelt hat

    • Ich kenne ihn persönlich seit fast 30 Jahren, und er ist immer noch einer der klügsten, erfahrensten und neugierigsten Entwickler, denen ich je begegnet bin
      Insgesamt ein guter Mensch, und ich würde jederzeit wieder mit ihm arbeiten wollen
    • Ich frage mich, ob es noch andere interessante Dinge gibt, die er gebaut hat
    • Ich war kurz interessiert, aber gerade diese Aussage hat mich eher davon überzeugt, es zu meiden
  • Wenn man vorhat, das an Unternehmen zu verkaufen, sollte man über die Stelle nachdenken, an der steht: „Wenn ein Nutzer sein Konto löscht, werden die benutzerspezifischen Schlüssel vernichtet.“ Arbeitsnachrichten gehören nicht der einzelnen Person, sondern dem Arbeitgeber, daher braucht man Soft Delete

    • In so einem Fall könnte man Nutzern einfach verbieten, ihr Konto selbst zu löschen. Trotzdem scheint ein automatischer Right-to-be-Forgotten-konformer Ansatz für die meisten Chatto-Nutzer und -Anbieter gut zu sein
    • Vielleicht sind Arbeitgeber gar nicht die Zielkundschaft
  • Ich musste lachen, weil „chato“ im Portugiesischen „langweilig“ bedeutet. Aber das hier sieht sehr einfach einzurichten und zu benutzen aus
    Mehr langweilige Software ist willkommen

    • Es kann auch „nervig“ bedeuten. Bevor man einen Projekt- oder Firmennamen festlegt, sollte man zumindest immer in den 10 Sprachen mit den meisten Sprechern prüfen, ob es schlechte Bedeutungen gibt
      Im Portugiesischen/Spanischen ist es ziemlich oft möglicher NSFW-Slang
  • Cool. Ich kann auf der Website allerdings nirgends erkennen, ob es Mobile-Support gibt
    Wenn man Firmen oder Freunde migrieren will, ist Mobile-Support unverzichtbar

    • Scheint auf der Roadmap zu stehen
      https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
    • Man sollte beachten, dass zum Senden von Benachrichtigungen an eine iOS-App der Herausgeber der App die Benachrichtigungen senden muss. Das heißt, man muss einen Event-Delivery-Proxy-Service betreiben
      Mattermost, Element/Matrix und vermutlich einige oder alle ActivityPub-Clients machen das wohl so. Andernfalls würde Self-Hosting des Servers bedeuten, dass man auch die Client-App selbst über den App Store und die Kosten des Apple-Entwicklerprogramms verteilen muss
  • Ich werde das weiter beobachten. Derzeit nutze ich Mattermost, aber das Preismodell ist ziemlich uneinheitlich und auf Enterprise ausgerichtet, daher verwende ich im Moment weiter die Open-Source-Version mit stark eingeschränkten Funktionen
    Außerdem haben mir Videoanrufe gefehlt, daher ist es gut, dass Chatto diese Funktion hat

  • Ich frage mich, warum es eine Dual-Lizenzierung gibt. Das Go-Backend ist AGPL, aber das TypeScript-Frontend scheint Apache 2.0 zu sein
    Ich frage mich, warum nicht alles unter AGPL steht

    • Wenn man das Backend unter AGPL stellt, kann man verhindern, dass jemand es als Service hostet. Die AGPL betrachtet auch Hosting als Distribution, daher muss jeder, der es hostet, seinen Code offenlegen
      Damit erhält man eine milde Form von Exklusivität für den Betrieb einer eigenen Cloud. Beim Frontend ergibt eine permissivere Lizenz dagegen mehr Sinn, wenn man Anpassungen, White-Labeling usw. erlauben will
      Grafana ist ein gutes Beispiel. Der Wechsel 2021 von Apache zu AGPLv3 erfolgte, damit Cloud-Anbieter keine modifizierten Versionen ohne Beiträge hosten können, während Plugins unter der Apache-Lizenz blieben
    • Die AGPL verhindert, dass andere mit dem Go-Backend einen konkurrierenden Cloud-Service betreiben. Beim Frontend hat sie kaum Wirkung und schreckt nur Enterprise-Nutzer ab
  • Es wäre wirklich schön, wenn man nach dem Self-Hosting ein Paket oder einen Link erzeugen könnte, das bzw. der Download, Installation und Login-Vorkonfiguration übernimmt. So etwas wie ein benutzergebundener Installer oder ein Konfigurationsskript
    Das Ziel ist, die Onboarding-Reibung so weit wie möglich zu reduzieren. Es könnte Sicherheitsfolgen haben, wenn ein Link versehentlich geteilt wird, aber bei kleinen Self-Hosting-Instanzen scheint sich das relativ leicht abmildern zu lassen. Man könnte es auch so gestalten, dass es nur mit lokalen Konten funktioniert
    So wäre es einfacher, einem Freund einen Link zu schicken mit „Lass uns hier chatten“, ohne sich Sorgen machen zu müssen, dass die Reaktion lautet: „Ich nutze schon Discord und habe keine Lust, das alles einzurichten“

    • Ich frage mich, was über „Ich gebe dir einen Instanz-Link, dort registrierst du dich“ hinaus erwartet wird. In Kombination mit Discord-ähnlichen Rollen kann man Kanalsichtbarkeit und Berechtigungen über Rollen einschränken
      Selbst wenn jemand anderes beitritt, gibt man ihm einfach zum Beispiel nicht die Rolle „interne Gruppe“. Vielleicht ist eher so etwas wie ein Einladungslink mit Einmal-Token gemeint
  • Sehr gut. Ich hatte früher einmal eine ähnliche Idee: Viele Unternehmen wollen etwas, das Benachrichtigungen sammelt und einfache Bot-Aktionen ausführt, möchten aber nicht unbedingt an einen bestimmten Chat-Anbieter gebunden sein
    Wenn es als Frontend für mehrere Integrationen oder auch nur für internen Chat nutzbar wäre, wäre das wirklich interessant

  • Ich würde gern wissen, was im Vergleich zu Mattermost die Vor- und Nachteile von Chatto sind
    Zusätzlich ist es sehr erfreulich, dass das Chatto-Backend in Go implementiert ist. Go passt für so einen Einsatzfall sehr gut