無料でDiscordのようなチャット・音声・動画・ボットなどを駆使した小さなコミュニティを自分たちで運営できる「Harmony」、既存のDiscordサーバーと接続できるブリッジ機能もオープンソースでセルフホスト可能
友人同士でチャットや音声通話を楽しんだり趣味の仲間と情報を共有したりする際には、Discordのようなコミュニティ向けサービスが便利です。こうした環境を自分たちで運営しながら既存のDiscordサーバーとも交流を続けられるようにしたのが、チャット・音声・動画・画面共有・ボットなどの機能を備えた無料のオープンソースソフトウェア「Harmony」です。
Harmony - chat that belongs to the people in it
https://mony.lol/
◆Harmonyの主な機能
HarmonyはDiscordに似た画面でコミュニティを運営できる無料のオープンソースソフトウェアで、左側にチャンネル一覧、中央に会話、右側に参加者が並びます。
コミュニティを作成するとテキスト用の「general」と音声用の「voice chat」が用意され、目的に応じてチャンネルを追加できます。
テキストチャンネルではメッセージへの返信や絵文字のリアクションに対応。
投稿を起点とするスレッドで話題を分けることもできます。
さらにアンケートを作成すると選択肢ごとの投票数や割合が表示され、メンバー間で場所や日程などを決める際にも利用できます。
◆Discordサーバーとメッセージを双方向に同期
Harmonyの特徴が既存のDiscordサーバーと接続する「Discord Bridge」で、両サービスのテキストチャンネルを1対1で対応付けられます。
設定画面で「Discord ブリッジ」を開くとインスタンス側のBotを使う方法や独自Botを使う方法から運用方式を選択できます。
Discordサーバーと接続した後に両サービスのチャンネルを選び、同期方向を「双方向」にするとメッセージを双方向に中継できます。
Discordから送信したメッセージは投稿者の名前やアイコンとともにHarmonyへ表示され、Discordから来たことを示すバッジも付きます。
Harmonyで送信したメッセージもDiscordへ届くため、メンバーが異なるサービスから同じ会話に参加できます。
メッセージの編集・削除やリアクション、スレッドにも対応し、それぞれの同期は設定画面で切り替えられます。
なお音声・動画の通話はブリッジの対象外で、停止していた間の投稿も後から自動取得できません。
◆音声・動画通話と空間オーディオ
音声チャンネルをクリックすると通話に参加でき、マイクのほかカメラや画面共有も利用できます。
通話画面の「空間オーディオ」を有効にすると参加者が平面上に配置され、相手のアイコンを近づけるほど声が大きく、遠ざけるほど小さく聞こえます。
ほかにも通話中に効果音を再生する「Soundboard」やリアクション機能を備えています。
◆異なるサーバー間で交流できる分散型ネットワーク
Harmonyは「ActivityPub」という分散型SNSの通信規格にも対応し、異なる運営者のHarmonyインスタンス同士で交流できます。
◆その他の機能
このほかロールによる権限管理・迷惑投稿を制限する「AutoMod」・Bot用API・Webhook・独自絵文字・二要素認証なども備えています。
◆Harmonyの導入方法
・Web版でHarmonyを利用する
ブラウザから「https://har.mony.lol/」へアクセスし「Register」のリンクをクリック。
アカウント登録フォームの「Email」にメールアドレス、「Password」にパスワードを入力して「Create account」をクリック。
登録したメールアドレスに送信されたメール内の承認用リンクをクリック。
プロフィール設定フォームの「表示名」に任意の表示名を、「ユーザー名」にユーザー名を記入して「続ける」をクリック。
おすすめのサーバーへの参加を求められますが、今回は「今はスキップ」をクリック。
チャットの初期画面が表示されれば利用可能な状態です。
・WindowsのDocker DesktopでDiscordブリッジを構築
今回はWindowsにDocker DesktopとGit for WindowsのGit Bashを用意した環境でDiscordブリッジを構築します。先にDiscordのBotを作成するためDiscord Developer Portalにログインしサイドメニューの「アプリケーション」をクリック。
「新しいアプリケーション」をクリック。
アプリ作成フォームの「名前」に名前を入力し、「規約と開発者ポリシー」にチェックをして「作成」をクリック。
アプリの管理画面になったらサイドメニューの「Bot」をクリック。
「Message Content Intent」と「Server Members Intent」を有効化し「変更を保存」をクリック。
トークンを取得するため「トークンをリセット」をクリック。
リセットするか質問されるので「実行します!」をクリック。
トークンが作成されるのでメモしておきます。
次にHarmony側のBotを作成するためHarmony側で自分が作成したサーバーのメニューから「サーバー設定」をクリック。
サーバー設定のサイドメニューから「Discordブリッジ」をクリックし「ブリッジをどこで動かしますか?」の選択画面で「自分で動かす」をクリック。
「Discordボットを作成」手順の説明画面が表示されるので「トークンを用意しました」をクリック。
「ブリッジを起動」手順の説明画面が表示されるので「Docker Compose」をクリックして内容をコピーします。
作業フォルダーで「docker-compose.yml」ファイルを作成しコピーした内容をペーストして保存後、コンテナを起動。
vi docker-compose.yml
docker compose up -d
コンテナが起動したらHarmony側の画面に戻り「ボットをDiscordサーバーに招待」をクリック。
Discordが起動し「サーバーに追加」から同期したいサーバーを選択して「続行」をクリック。
権限の認証画面になるので「認証」をクリック。
Harmony側の画面に戻り「チャンネルをペアにする」で「Harmonyのチャンネル」と「Discord」のチャンネルを選択し「ペアを追加」をクリックして同期したいチャンネルを追加してから「次へ」をクリック。
同期する内容を選択して「設定を完了」をクリック。
Harmony側のチャット画面に戻り同期したチャンネルで文章を送信。
Discord側のチャンネルにもメッセージが届いていることが確認できればDiscordブリッジの構築は完了です。
・モバイルアプリ
Android向けにはAPKが公開されているほか、iPhoneやiPadではSafariからWebアプリとしてホーム画面に追加して利用できます。
◆Harmonyの評価
ソーシャル系ニュースサイトのHacker NewsではHarmonyについて議論が行われており、2600人規模のDiscordサーバーを管理するユーザーからDiscordブリッジについて「とてもよく考えられた機能」という評価がある一方、「バグや信頼性の低下が予想される」という懐疑的な意見も投稿されています。
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.










































