レビュー

無料でDiscordのようなチャットサーバーをセルフホストできる「Chatto」、消費リソースが極めて少なく軽快な動作でチャットデータは暗号化されているのが特徴


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
OIDCGitHubGoogle・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版が推奨されています。

・関連記事
オープンソースの暗号化メッセージングアプリ「Session」 - GIGAZINE

ChatGPTでAppleのメッセージアプリを管理できる「Apple Messages Plugin」が登場、メッセージの返信・分類・管理が可能 - GIGAZINE

懐かしい見た目のチャットアプリ「chat.exe」が登場したので使ってみた - GIGAZINE

無料かつメアドや電話番号不要で使えるチャットアプリ「White Noise」レビュー、分散型プロトコル「Nostr」と暗号化を組み合わせて検閲や規制にも強い - GIGAZINE

Twitter創業者のジャック・ドーシーがBluetoothでP2P通信するチャットアプリ「bitchat」を開発中、アカウント作成不要でWi-Fiやモバイル回線に接続せずに通信可能 - GIGAZINE

in ソフトウェア,   レビュー, Posted by darkhorse_logmk

You can read the machine translated English article Chatto is a free self-hosting chat serve….