Discordなどのチャットサービスでは手軽にサーバーを作成してグループ内で会話できますが、メッセージや個人情報を含むチャットデータはサービス提供者のインフラ上で管理されるため、社内の機密情報などを扱う場合はデータの保存先や管理方法が課題になります。そこで、セルフホスト可能で数十MB程度のRAMから軽快に動作するほか、メッセージ本文などを暗号化して保存できる「Chatto」が公開されています。

Chatto - Self-hostable team chat

https://chatto.run/



chattocorp/chatto: A fully-featured team and group chat application that you can easily selfhost.

https://github.com/chattocorp/chatto

◆Chattoの利用方法

Windows・macOS・Linux専用のデスクトップクライアントもしくはブラウザでChattoサーバーのURLを入力して接続。管理者アカウントを作成するため「Create Account」をクリック。



「Email」にメールアドレスを入力し「Continue」をクリック。



メールアドレスに認証コードが送信されるので入力し「Submit」をクリック。



登録フォームが表示されるので「Username」にユーザー名、「Password」および「Confirm Password」にパスワードを入力し「Create Account」をクリック。



登録処理が完了後、初期画面が表示されるので参加したいLobbyの「Join」ボタンをクリック。



「Joined」の表示になったらLobbyのラベルをクリック。



チャットに参加し会話が可能になります。



◆Chattoの特長

・消費リソースが少ない

タスクマネージャーでChattoのメモリ利用量を確認すると45.1MBとなっており、わずかなメモリで起動しています。



・メッセージ本文などを保存時に暗号化

メッセージ本文などを暗号化と改ざん検知を同時に行える「ChaCha20-Poly1305」で暗号化して保存します。

・ユーザーごとに暗号鍵を付与

ユーザーごとに暗号鍵が用意され、アカウント削除時には暗号鍵を破棄して暗号化済みデータを復号できなくする「Crypto Shredding」が行われます。これにより、バックアップや履歴に暗号化されたメッセージ本文などが残っていても、対応する鍵が失われることで内容を復号できなくなります。

◆Chattoのその他の機能

・画面共有

・全文検索

・通知

・PWA

・バックアップ

・ロールと権限管理

Owner・Admin・Moderatorなどのロールを使い、ユーザーやルームごとに操作権限を細かく設定できます。

・SSO

OIDC・GitHub・Google・Discordなどの外部認証サービスと連携し、既存アカウントを使ってログインできます。

・音声およびビデオ通話

LiveKitを利用した音声・ビデオ通話に対応しており、チャットルームからそのまま会話を始められます。

・GraphQL API

GraphQL APIを通じてChattoの機能やデータへアクセスでき、外部ツールとの連携や独自機能の開発に利用できます。

・NATS API

内部で利用するNATSを通じた連携機能が用意されており、イベント駆動型の外部システムと組み合わせられます。

◆Chattoの評価

ソーシャル系ニュースサイトのHacker Newsでは、Chattoについてさまざまな議論が行われており、「Vibe Codingと経験豊富な開発者が設計判断を行いながらAIに実装を任せるAgentic Engineeringは別物」というAIエージェントに依存した開発でもChattoは好例として評価されています。「モバイルアプリが欲しい」という要望も多くみられ、これに対し「今のところ優れたPWA体験を提供することに全力を注いでいますが、いずれPWAのラッパーとして提供する予定です」と作者からの回答がありました。

◆Chattoサーバーのインストール方法

今回はWindows版バイナリをインストールします。リポジトリのReleasesページにある「chatto_Windows_x86_64.zip」をダウンロードし保存。



保存したZIPファイルを右クリックし「すべて展開」を選択して任意のフォルダーに展開。



コマンドプロンプトを起動し、フォルダーに移動して初期化コマンド「chatto.exe init」を実行。



アカウント作成時にはメールで送信される確認コードによる認証が必要となるため、「chatto.toml」ファイル内の「smtp」ブロックに利用するメールサーバーの情報を入力します。


[smtp]
enabled = true
host = 【SMTPサーバー】
port = 【SMTPポート】
tls = 【TLS方式】
from = 【送信元アドレス】


サーバー起動コマンド「chatto.exe run」を実行。



ログに接続先URLが表示されればサーバーの起動完了です。



◆Chattoクライアントのインストール方法

今回はWindows版バイナリをインストールします。リポジトリのReleasesページにある「chatto-desktop_【最新バージョン】_Windows_X64.zip」をダウンロードし保存。



保存したZIPファイルを右クリックし「すべて展開」を選択して任意のフォルダーに展開。



展開したフォルダー内にある「chatto-desktop.exe」をダブルクリックして起動。



クライアントが起動すればインストール完了です。



なお、LANやVPN内で試す場合はWindowsバイナリ版でも十分ですが、インターネットへ公開する場合は、独自ドメインやHTTPS・NATS・LiveKitなどを分離して管理でき、外部公開に必要なネットワーク設定やセキュリティ対策も行いやすいDocker版が推奨されています。