DiscordをやめてRevoltにしてみよう
製品・サービス::service
序
RevoltはオープンソースのDiscordクローンである。
Slackクローンはいくつか存在するが、Discordクローンはあまりない。
RevoltについてはMattermostの記事で少し触れた。
動機
Discordでアカウント登録しようとしたら即時BANされたからだ。
従来のアカウントをやめようと思っていたため、新しいアカウントを作ろうとしたら、作った瞬間に電話認証を求められ、再度ログインしたらBANされた。
次に示すのはDiscordから来たメールだが、そもそも一度もログインできていない、登録しただけの状態だから当然該当するはずがない。
以前Twitterでも全く同様のことがあり、新しいアカウントを作ることができなかった。 それは、Twitterに本格的に不信感を抱くようになったきっかけでもある。 不透明な運営をするサービスを私は信用できない。Discordから距離を置くときだと思った。
それ以前に、Discordが「アプリが更新されると古いアプリでは起動すらできない」という仕様であることに不満を持っていたし、そのあたりもあって既に離れる動きではあった。
Revoltについて
RevoltはDiscordクローンであり、非常に良く似ている。
といっても、その仕様は初期のDiscordに似たものであり、なんなら初期のDiscordの機能にも届いていない。 最近ようやくBotを作るためのメニューが追加されて、あってないようなものだったBot APIが有効なものになったくらいだ。
基本的にある機能としては、DMとサーバー、チャンネルとチャンネルカテゴリ。 個別のチャンネルでは
- テキストのチャット
- 音声チャット
- 絵文字
- 絵文字リアクション
- カスタム絵文字
- 返信
- ロール
- 招待
- BAN
ぐらいのもの。 個人設定は表示名、アイコン、自己紹介で、この内容でのサーバープロフィールは存在する。
本当に基本的な機能だけ。 ビデオチャットもなく、ゲーム関連機能はない。
機能的な意味でも、既存コミュニティという意味でも、Discordを「捨てて」Revoltにするのは困難なのは間違いない。
セルフホストするかどうか
Revoltは公式サーバーがhttps://revolt.chatで、Revoltのプロジェクト全体がGitHubでオープンソース化されているため、self-hosted運用が可能である。 ただし、コンポーネント構成が非常に複雑なため、手組みはかなり辛い。
楽に構築できるのはDocker Composeを用いるものである。
ローカルで起動させるだけなら設定なしでcompose一発で起動可能。
ホストとしてlocal.revolt.chat
が指定されているが、127.0.0.1
を引くようになっている。
in productionになると考えるべきことは結構多い。
まず、hCaptchaを用意し、docker-compose.yaml
のREVOLT_HCAPTCHA_*
を編集。
SMTPサーバーを用意しREVOLT_SMTP_*
を編集。
そしてVAPIDキーペアを用意してREVOLT_VAPID_*
を編集する。
だが、Revoltは非常に負荷が高くなりえるソフトウェアだ。 しかも、公開するとどうしても外部ユーザーに利用されることを考える必要がある。 Mattermostなら招待したチームだけで使えるようにすることもできるが、Revoltでできるのは「招待なしにはアカウントを作れない」という制限だけで、サーバーの設定で招待されたアカウントが招待を作れないようにはできるが、招待されたアカウントがサーバーを作ることは可能。 新たに作ったサーバーなら招待を作成でき、結果として招待されたユーザーがサーバーとユーザーを増やしていくことができる。 つまり、「他者に全く公開しない」ことは可能だが、ユーザーコントロールはできない仕組みだ。
revolt.chatサーバーは外部サービスを活用して結構強めのインフラを用意しているようなので、セルフホストはそこそこしんどいのは間違いないと思う。
もうひとつ大きな問題が、公式が配布しているクライアントはサーバーをrevolt.chat
固定にしているということだ。
クライアントアプリを独自サーバーで使おうとすると、クライアントをビルドしてあげる必要があり、結構ハードルが高い。
こうしたことから、セルフホスト構築も試した上で、「Revolt公式が信用できないといった理由がない限りセルフホストはしないほうが良い」というのが私の意見。
感想
Revoltが実用可能な選択肢のひとつであることは間違いないが、「Discordの代わり」は無理というのが現状。
Discordの独裁体制がシンプルにつらい。