- Chattoはグループ・チームチャット向けアプリで、Slack・Teams・Discordのようなグループチャットアプリに近いものの、よりコンパクトで軽快な使い心地を目指している
- 実行ファイルだけでサーバーを立ち上げ、独自のフロントエンドまで提供するため、個人インフラにも比較的簡単にデプロイできる
- 各サーバーは1つのコミュニティを担当し、サーバー間のフェデレーションやサードパーティの追跡・分析は行わない
- 個人データおよびチャットデータはユーザーごとのキーで保存時に暗号化され、アカウント削除時にはそのキーも破棄される
- この約1年間にわたって開発されてきたグループ・チームチャットアプリケーションであり、正式にオープンソース化され、誰でも自分で運用できるようになった
セルフホスティングとして公開されたChatto
- Chattoはこの約1年間にわたって開発されてきたグループ・チームチャットアプリケーションであり、正式にオープンソース化され、誰でも自分で運用できる
- 最も手早い実行方法はHomebrewを使うこと
brew install chattocorp/tap/chatto
chatto init
chatto run
サーバー構成とセキュリティモデル
- 最も基本的な構成では、実行ファイル1つでサーバーを起動でき、サーバーが独自のフロントエンドもあわせて提供する
- リソース使用量は少なく、個人データおよびチャットデータはユーザーごとのキーで保存時に完全に暗号化される
- ユーザーがアカウントを削除すると、そのユーザーキーは破棄される
- 各Chattoサーバーは単一のコミュニティを運用する
- サーバー間のデータフェデレーションはない
- サードパーティの追跡や分析もない
- 複数のサーバーに同時に参加したい場合は、クライアントが各サーバーへ直接接続する
- 複数のコミュニティをホストしたい場合は、Chattoプロセスを複数起動すればよい
- 音声・ビデオ通話と画面共有を標準でサポートする
- 通話はエンドツーエンドで暗号化される
- 参加者数の拡張は、ユーザーのインフラが処理できる範囲まで可能
配布ファイルと運用資料
Chatto Cloudと有料ホスティング
- Chatto Cloudはまもなく公開ベータに入る予定で、Chattoサーバーの有料ホスティングのみを提供する
- プレミアムサブスクリプション、広告、そのほかの追加要素はなく、ホスティングだけを提供する
- リリース時点のインフラは欧州および欧州所有のインフラで構成される
- より多くのリージョンは2027年初頭に提供予定
- すべてのChatto Cloudサーバーは自動スケーリング、毎晩の完全データバックアップ、無停止のバージョンアップグレードを提供する
- Chatto Cloudはロックインを生まない方向を目指している
- Chatto Cloudでホストされるサーバーはセルフホスティングサーバーと100%互換
- いつでもデータを移して、Chatto Cloudの内外へ移行できる
0.4の現状と1.0.0までの計画
- 現在のChattoバージョンは0.4
- Chatto 0.5の焦点は安全機能とクライアント改善
- コンテンツ通報とモデレーション機能が含まれる
- 特にマルチサーバー機能の磨き込みに集中する
- Chatto 1.0.0には約6〜12か月後に到達する見込み
- それまでは破壊的変更が入る可能性がある
- セルフホスティング利用者は、新バージョン公開時に更新できるよう準備しておく必要がある
- リリース情報やChatto Cloudベータ開始通知はChatto announcementsニュースレターで受け取れ、配信頻度はおよそ月1回
2件のコメント
Mattermostを使っているのですが、しきりにエンタープライズ版へ誘導し、OSS版の機能は削っていっているので、
十分に成熟したら、Mattermostから移行するツールを一つ作ってみたいですね。
Hacker News の意見
自社インフラにセルフホスティングしやすいよう設計されている点がよい。ドキュメント(https://docs.chatto.run/)を見ると、Chatto は小さな独立バイナリとして配布され、組み込みのストリーム永続化エンジンを備えた軽量メッセージブローカー NATS を使い、外部の S3 互換オブジェクトストレージも設定できるとのこと
実際の通話は LiveKit(Apache-2.0)で動作し、Chatto と一緒にデプロイする必要があるが、NATS と同様に、必要な接続設定を示すデプロイ例が用意されている点もよい。口先だけでなく実際のガイドがある優れたプロジェクトだ
スクリーンショットを見る限りありそうだが、それをダウンロードするためのドキュメントは見つけられなかった
Hendrik とは数年来の知り合いだが、これまで会った開発者の中でも指折りの才能の持ち主だ。このプロジェクトも非常に早く成功するだろうと確信している
プロジェクト自体も興味深いが、エージェント型コーディングを活用して一人で開発したという点が特に印象的だ
総じて良い人で、いつでもまた一緒に働きたい
企業に売るつもりなら、「ユーザーがアカウントを削除したらユーザーごとの鍵を破棄する」という部分は考える必要がある。業務メッセージはユーザー個人ではなく雇用主に属するので、ソフトデリートが必要だ
ポルトガル語で「chato」が「退屈な」という意味なので笑ってしまった。とはいえ、これはセットアップして使うのがとても簡単そうだ
もっと多くの退屈なソフトウェアを歓迎する
ポルトガル語/スペイン語では、NSFW なスラングである可能性がかなりよくある
素晴らしい。ただ、ウェブサイトのどこを見てもモバイル対応があるのか分からない
会社や友人たちを移行させるには、モバイル対応は必須だ
https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
Mattermost、Element/Matrix、おそらく一部またはすべての ActivityPub クライアントはこの方式を取っているようだ。そうでなければ、サーバーをセルフホスティングするということは、クライアントアプリも App Store と Apple Developer Program の費用を通じて自分で配布しなければならないという意味になる
引き続き注視するつもりだ。現在 Mattermost を使っているが、価格体系がかなり不安定でエンタープライズ向けになっているため、今は機能が大きく制限されたオープンソース版を使い続けている
それにビデオ通話が物足りなかったので、Chatto にその機能があるのはよい
デュアルライセンスにした理由が気になる。Go バックエンドは AGPL だが、TypeScript フロントエンドは Apache 2.0 のように見える
なぜ全部 AGPL にしなかったのか気になる
そのため、自社 Cloud を運営するうえで、緩やかな形の独占性を提供する。一方でフロントエンドは、カスタマイズやホワイトラベル化などを許可するには、より寛容なライセンスのほうが理にかなっている
Grafana がよい例だ。2021年に Apache から AGPLv3 に移行した理由は、クラウドプロバイダーが修正版を貢献なしにホスティングできないようにするためで、プラグインは Apache ライセンスのまま維持した
セルフホスティング後に、ダウンロード、インストール、ログインの事前設定まで行ってくれるパッケージやリンクを生成できると本当にうれしい。特定の人に紐づいたカスタムインストーラーや設定スクリプトのような形だ
目標はオンボーディングの摩擦をできるだけ減らすこと。リンクが誤って共有されるなどセキュリティ上の影響はあり得るが、小規模なセルフホストインスタンスなら比較的容易に緩和できそうだ。ローカルアカウントでのみ動作するようにもできる
こうなれば友人に「ここで自分とチャットしよう」というリンクを送りやすくなり、「もう Discord を使っているから、そういう設定は全部やりたくない」という反応を心配しなくて済む
他の人が登録しても、例えば「内部グループ」ロールを付与しなければよい。ワンタイムトークン付きの招待リンクのようなものを想定しているのだろうか
とてもよい。以前似たようなことを考えたことがある。多くの企業は通知を集約し、簡単なボット動作を実行するものを求めているが、必ずしも特定のチャットプロバイダーに縛られたいわけではない
複数の統合のフロントエンド、あるいは社内チャットだけとしても使えるなら、本当に興味深いものになりそうだ
Mattermost と比べたときの Chatto の長所と短所が知りたい
付け加えると、Chatto のバックエンドが Go で実装されているのはとても喜ばしい。Go はこうした用途に非常によく合っている