E2E インフラの管理者は紙の痕跡を持つべきではありません。
エンドツーエンド暗号化は強い主張です。請求側 KYC からリレーのホスターが、まさにどの法的人物がこのホームサーバーを立てたかを知る瞬間、それは損なわれます。暗号通貨のみ課金の KYC なし登録は、リレーの管理メタデータをリレーのペイロードメタデータと同じくらい不透明に保ちます: 「このメールの背後の前払い残高」、おしまい。

月額 $23.90 の Ravelin 上の Synapse + Postgres + Element。ホームサーバーはリレーしフェデレートしますが、自身の E2E トラフィックを読めません。北欧管轄は、丁寧に試行するよう求める人がいないことを意味します。
月額 $23.90 の Ravelin は約 100 ルームのよくフェデレートされた Synapse を快適に運びます ── Postgres、Redis、Synapse ワーカー、ルーム状態キャッシュ、すべて同じボックスで。
エンドツーエンド暗号化は構造的 ── ホームサーバーは復号できない暗号文をリレーします。KYC なしの管理者登録は、運営者も紙の痕跡を持たないことを意味します。
北欧管轄 + 設計上のログなし + 無制限アップリンク。アクティブなルームセットのフェデレーションのおしゃべりは実際のボリュームです。ここでは追加課金されません。
matrix.org に参加するのは、ほとんどの人にとって正しい答えです。自分のホームサーバーを運用するのは、ハンドル、ルーム会員、メッセージメタデータが誰か他人の管理パネルに住むべきでないときの正しい答えです。プロトコルはフェデレートされ、暗号化はエンドツーエンドです。欠けているピースは「自分のアカウントが紐付けられているボックスを誰が制御するか」であり、その答えは脅威モデルを実質的に変えます。
Matrix のフェデレーションモデルは寛容です: あらゆるホームサーバーは他のあらゆるホームサーバーと話せ、ルームはサーバーをまたぎ、暗号化はユーザーに従い、参加するための中央ディレクトリは不要です。ホームサーバーが稼働し、フェデレーションテスターに対して検証されれば、あなたのアカウントはネットワークのファーストクラスシチズンです ── @user:matrix.org や @user:mozilla.org と同じ、ただしあなたのドメインで。
Synapse の運用の物語はよく踏まれています: 上流の Docker Compose テンプレート、状態用の Postgres、ワーカープール用の Redis、大量フェデレーション用のオプションのシャードワーカー。どれも目新しくなく、すべて文書化されており、障害モードは既知です。
正しい問いは抽象的な「セルフホストか matrix.org か」ではなく ── 「自分のフェデレーションアイデンティティを、自分が管理するボックスに紐付けたいか」です。答えが「はい」なら、このページの残りはそのレシピです。
約 100 ルーム(小さな DM と外向きにフェデレートされたよく賑わう少数の公開ルームの混合)を持つコミュニティホームサーバーには、Ravelin(月額 $23.90、8 vCPU、16 GB、480 GB NVMe)が適切なティアです。Synapse の Python データパスはフェデレーションバースト時に RAM を多く要求します ── 50k ユーザーを持つサーバーに参加された人気のルームは、余裕を求める一時的な状態解決スパイクを生み出します。16 GB はそれを快適に吸収します。
約 1000 アクティブルームを超える、またはフェデレーショントラフィックが Synapse にシャードワーカーモードを要求し始めると、Bulwark ティアが専用の federation_sender、synchrotron、event_persister ワーカーを実行するコアを提供します ── 単一ボックス内での Synapse の水平スケーリングの物語。その時点で、Postgres を独自の VPS に置くべきかも考えたいでしょう。2 ボックスレイアウトについて相談できます。
個人ホームサーバー ── あなたのアカウント、いくつかの DM、少数の小さなプライベートルーム ── には、Garrison(月額 $11.90、4 vCPU、8 GB、240 GB NVMe)で十分です。Sentinel 上の Conduit は単一ユーザーのセットアップで技術的に可能ですが、Garrison 上の Synapse は移行なしで成長する余地を提供します。
これらのいずれでもないもの: 千テナントのマネージド Matrix 提供。NordBastion は、知っている人々のために自分のホームサーバーを運用する運営者向けに構築されており、見知らぬ人に Matrix アカウントを販売するためのものではありません。
概略スケッチ ── homeserver.yaml チューニングとワーカーモードの権威的な参考資料は引き続き上流の element-hq Synapse ドキュメントです。
公式 Docker エンジン + Compose v2 プラグイン。Element-HQ はタグで固定できるメンテナンスされた Synapse イメージを公開しています。
curl -fsSL get.docker.com \
| sh
apt install \
docker-compose-plugin
Synapse イメージのワンショット「generate」モードは、server_name にキーされたスターター構成を書き出します。同じパスでオープン登録を無効にします。
docker run --rm \
-v ./data:/data \
-e SYNAPSE_SERVER_NAME=example.org \
matrixdotorg/synapse:latest \
generate
Postgres が本番ストアで、SQLite はテスト用のみです。シングルプロセスで開始する場合でも、ワーカープールには Redis が必要です。
# docker-compose.yml に追加postgres: postgres:15
redis: redis:7-alpine
# 次に homeserver.yaml で: データベースドライバ psycopg2
アペックスドメインの /.well-known/matrix/{client,server} に 2 つの小さな JSON ファイル。application/json として CORS Access-Control-Allow-Origin: * で提供。
# /.well-known/matrix/server
{"m.server": "matrix.example.org:443"}
# /.well-known/matrix/client
{"m.homeserver":{"base_url":"https://matrix.example.org"}}
federationtester.matrix.org は well-known、証明書チェーン、TLS ハンドシェイク、バージョンハンドシェイク、鍵交換をチェックします。グリーンになるまでユーザーを招待しないでください。
# server_name を次に貼り付け:# federationtester.matrix.org
# すべてのチェックがグリーンでなければならない
homeserver.yaml の registration_shared_secret + register_new_matrix_user CLI = 公開サインアップを一度も開かずに管理者アカウント。
docker compose exec synapse \
register_new_matrix_user \
-a -c /data/homeserver.yaml \
http://localhost:8008
エンドツーエンド暗号化は強い主張です。請求側 KYC からリレーのホスターが、まさにどの法的人物がこのホームサーバーを立てたかを知る瞬間、それは損なわれます。暗号通貨のみ課金の KYC なし登録は、リレーの管理メタデータをリレーのペイロードメタデータと同じくらい不透明に保ちます: 「このメールの背後の前払い残高」、おしまい。
Matrix のエンドツーエンド暗号化は、すでに算術的にリレーがペイロードを読むことを防ぎます。北欧管轄は 2 つ目の層を追加します: ホスターに接続メタデータの記録を強制するデータ保持義務なし、施行されたクライアント側スキャン法令なし、そして誰かが算術を変えようとした場合に何が起こるかを記述する公開された令状カナリア(できません)。2 層の「No」は 1 層に勝ります。
いくつかのよく賑わう公開ルームに参加するフェデレートホームサーバーは、多くの小さなフェデレーションイベントをプッシュします ── すべての参加、すべての状態変更、すべてのメッセージ受信は N サーバーへの配信ファンアウトです。集計は巨大ではありませんが持続的で、GB アウトで請求するホスターは運営者を不安にさせます。無制限アップリンクは認知的オーバーヘッドを取り除きます: プロトコルが要求するだけフェデレートしてください。請求書は同じです。
Matrix ホームサーバーのセルフホスティングは、小さなグループがメッセージングのために行える最もクリーンな主権の動きの 1 つです。単一の SaaS チャットツールの席の価格で、フェデレートされたエンドツーエンド暗号化されたホームサーバーを手に入れます ── ハンドルはあらゆるプラットフォームよりも長く生き、モデレーションはあなたのものであり、ホスティングはデータ保持義務もクライアント側スキャン法令も施行されていない管轄にあります。
NordBastion はこの特定の仕事に重要な部分について意見的です ── KYC なしの管理者登録、北欧管轄、無制限アップリンク ── そして残りについては意図的に普通です。Docker は Docker、Synapse は Synapse、Element-HQ がイメージを提供し、当社がボックスを提供します。
夕方を 1 つ取り、6 ステップを走らせ、フェデレーションテスターに対して検証し、管理者を発行します。ホームサーバーはその夕方よりも何年も長く生きます。
Matrix 管理者が docker compose up の前に実際に格闘する 8 つの質問。well-known デリゲーションが質問 2 なのには理由があります。
サーバーは 1 台のマシンで、メッセージは永久に存在するからです。ディスクアクセスを持つ誰か ── スナップショット事故、フォレンジックイメージ、暴走した共同管理者、最終的にボックスを引き継ぐ後継者 ── は、ルームが暗号化されていなければ平文を見ます。エンドツーエンド暗号化は、ホームサーバーを有用に保ちつつ(リレー、フェデレート、UI 表示)、参加者のデバイス鍵以外には算術的に読めないメッセージペイロードにします。セルフホスティングと E2E はベルト + サスペンダーです: リレーを制御し、かつリレーは自身のトラフィックを読めません。
Matrix はユーザー向けドメイン(example.org)とサーバー向けドメイン(matrix.example.org)を、https://example.org/.well-known/matrix/client と /.well-known/matrix/server で 2 つの小さな JSON ファイルを提供することにより異ならせることを許可します。クライアント側は Element にどのホームサーバー URL を使うか伝え、サーバー側は s2s API のために Synapse に到達する場所をフェデレートピアに伝えます。人々は 3 つのことでつまずきます: 誤った Content-Type でファイルを提供、CORS が他のインスタンスのフェッチを許可しない、サーバーファイルがファイアウォールが実際に公開していないポートを指している。ルームを公開する前に federationtester.matrix.org で検証してください。
Synapse(Python、リファレンス実装)は、公開ホームサーバーの 95 % が実行しているものです。最もテストされたフェデレーションピアで、仕様が定義するすべての機能をサポートする唯一のものです。Conduit(Rust、単一バイナリ、RocksDB)と Dendrite(Go、マイクロサービス)はより軽量です ── Conduit は Raspberry Pi 上で動くことで有名です。ユーザーを抱える公開フェデレートホームサーバーには、答えは Synapse です。趣味の単一ユーザーサーバーでは、Sentinel 上で Conduit を試せます。この記事は Synapse を前提とします。
homeserver.yaml で enable_registration: false を設定し、実際に望む人々のために管理 API 経由でアカウントを発行する registration_shared_secret に頼ります。あるいは、enable_registration_without_verification: false とハードコードされた shared-secret 招待フローを組み合わせます。Matrix フェデレーションは十分に大きく、あらゆるオープン登録ホームサーバーは数日でスパムボットアカウントファームになります。典型的な答えは「登録は管理者によりキュレーション、フェデレーションはオープン」です。
いいえ ── Matrix C-S API はプロトコル契約で、適合するすべてのクライアントは適合するすべてのサーバーと話します。Element はデフォルトで最もテストされています。Cinny はより軽量なウェブクライアントで、一部のセルフホスターがバンドルを好みます。SchildiChat は Telegram スタイル UI を備えた Element フォーク、FluffyChat はモバイルファーストを狙います。ホームサーバーは、ユーザーがどのクライアント上にいるかを見ることもなく、気にもしません。コミュニティが好むものを選び、後で変更してください。移行は不要です。
各 Matrix ユーザーはデバイス鍵(デバイスごと、エフェメラル)と相互署名鍵(アカウントごと、長期)のセットを持ちます。相互署名マスター鍵が、ユーザーがすべてを再検証せずに新しいデバイスを追加できるものです。失えば、ユーザーは再キー化するまで履歴の E2E メッセージから締め出されます。Element の「Secure Backup」機能は相互署名鍵をパスフレーズまたはリカバリー鍵で暗号化し、不透明な暗号文としてサーバー側に保存します ── ホームサーバーはブロブを保持しますが、読めません。サインアップ時にユーザー向けのリカバリー鍵手順を文書化してください。回避可能なロックアウトを防ぐ唯一の UX 要素です。
直接的にはできません ── ルームはフェデレートされたオブジェクトで、サーバーごとのレコードではありません。ですので、ルームを「移動」するということは、ルームをアップグレードする(後継ルームを作成し、古いものをリダイレクト付きでスタブする Matrix ネイティブのプリミティブ)ことと、同じ参加者セットを招待することを意味します。ルーム ID は変わり、エイリアスは追従できます。ホームサーバー間の直接的なユーザーアカウント移行は、長年の Matrix ウィッシュリスト項目です(アカウントポータビリティは仕様ロードマップ上にあります)。今日では、自分のサーバーで新しいアカウントを作成し、人々に再追加を依頼します。
Matrix はルームごとのモデレーションプリミティブ(キック、バン、削除、ルーム管理者)とサーバーごとのモデレーションプリミティブ(Synapse モジュール API 経由のデニーリスト、マネージドデニーリスト用の MJOLNIR ボット、招待制フェデレーション用のサーバーレベル許可リストモード)を持っています。コミュニティホームサーバーには、MJOLNIR スタイルのデニーリスト購読が標準的な答えです ── スパム / 不正使用の識別をメンテナンスされたデニーリストコミュニティに委任し、ポリシーをローカルに適用します。あなたの主権: どのデニーリストに従うかを選択します。