「Matrix」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎設定: 校正)
 
(同じ利用者による、間の2版が非表示)
17行目: 17行目:
   
 
インストールしたら、設定ファイルを作成する必要があります。ファイルは ''synapse'' ユーザーから読み込めるように設定してください:
 
インストールしたら、設定ファイルを作成する必要があります。ファイルは ''synapse'' ユーザーから読み込めるように設定してください:
  +
{{bc|<nowiki>
 
  +
{{bc|1=
$ cd /var/lib/synapse
 
  +
[synapse]$ cd /var/lib/synapse
$ sudo -u synapse python -m synapse.app.homeserver \
 
  +
[synapse]$ python -m synapse.app.homeserver \
--server-name my.domain.name \
 
  +
--server-name ''my.domain.name'' \
 
--config-path /etc/synapse/homeserver.yaml \
 
--config-path /etc/synapse/homeserver.yaml \
 
--generate-config \
 
--generate-config \
 
--report-stats=yes
 
--report-stats=yes
  +
}}
</nowiki>}}
 
   
 
この操作により、指定したサーバー名に対応する SSL 鍵と自己署名証明書が生成されることに注意してください。サーバ名を変更した場合は、これらを再生成する必要があります。
 
この操作により、指定したサーバー名に対応する SSL 鍵と自己署名証明書が生成されることに注意してください。サーバ名を変更した場合は、これらを再生成する必要があります。
44行目: 45行目:
 
Webcrawler を有効にするには、サーバーが生成するリンクのプレビューのために、追加パッケージ {{Pkg|python-lxml}} と {{Pkg|python-netaddr}} をインストールする必要があります。その後、設定オプション {{ic|url_preview_enabled: True}} は {{ic|homeserver.yaml}} で設定することができます。synapse サーバが内部ホストに対して任意の GET リクエストを発行しないようにするには、 {{ic|url_preview_ip_range_blacklist:}} を設定する必要があります。
 
Webcrawler を有効にするには、サーバーが生成するリンクのプレビューのために、追加パッケージ {{Pkg|python-lxml}} と {{Pkg|python-netaddr}} をインストールする必要があります。その後、設定オプション {{ic|url_preview_enabled: True}} は {{ic|homeserver.yaml}} で設定することができます。synapse サーバが内部ホストに対して任意の GET リクエストを発行しないようにするには、 {{ic|url_preview_ip_range_blacklist:}} を設定する必要があります。
   
{{Warning|デフォルトはありません! デフォルは、synapse サーバはすべての内部ホストをクロールすることができます。}}
+
{{Warning|デフォルト、ブラックリストは空白です。設定を行わないと、synapse サーバはすべての内部ホストをクロールできます。}}
   
 
コメントアウトしなくてもよい例がいくつかあります。ローカルな IP 範囲をこのリストに追加して、synapse サーバがそれらをクロールしようとするのを防ぎます。{{ic|homeserver.yaml}} を変更した後、サービスを再起動する必要があります。
 
コメントアウトしなくてもよい例がいくつかあります。ローカルな IP 範囲をこのリストに追加して、synapse サーバがそれらをクロールしようとするのを防ぎます。{{ic|homeserver.yaml}} を変更した後、サービスを再起動する必要があります。
58行目: 59行目:
 
=== 読み取り専用のファイルシステム ===
 
=== 読み取り専用のファイルシステム ===
   
デフォルトでは、synapse はサービス ファイルで設定された working-directory ({{ic|/var/lib/synapse}}) にのみ書き込みを行うことができます。synapse が異なるパスに書き込むと、書き込みエラーが発生する場合があります:media-store が {{ic|/var/lib/matrix-synapse/media}} にある場合
+
デフォルトでは、synapse はサービス ファイルで設定された working-directory ({{ic|/var/lib/synapse}}) にのみ書き込みを行うことができます。synapse が異なるパスに書き込むと、書き込みエラーが発生する場合があります(:media-store が {{ic|/var/lib/matrix-synapse/media}} にある場合)
   
 
他のディレクトリへのアクセスを許可するには、 {{ic|synapse.service}} の [[systemd#ユニットファイルを置換する|ユニットファイルを置換する]] を作成し、 {{ic|1=ReadWritePaths=''your_paths''}} を {{ic|[Service]}} セクションに追加することで行います。
 
他のディレクトリへのアクセスを許可するには、 {{ic|synapse.service}} の [[systemd#ユニットファイルを置換する|ユニットファイルを置換する]] を作成し、 {{ic|1=ReadWritePaths=''your_paths''}} を {{ic|[Service]}} セクションに追加することで行います。
  +
  +
=== メモリ消費量が多い ===
  +
  +
{{Pkg|jemalloc}} をインストールすることで、Synapse のメモリ消費量を大幅に削減できます。[https://element-hq.github.io/synapse/latest/usage/administration/admin_faq.html#help-synapse-is-slow-and-eats-all-my-ramcpu] jemalloc を有効にするには、[[環境変数]] LD_PRELOAD を適切に設定する必要があります。これは、{{ic|/etc/default/synapse}} を作成することで実行でき、systemdユニットファイルによって適用されます。[https://gitlab.archlinux.org/archlinux/packaging/packages/matrix-synapse/-/blob/main/synapse.service?ref_type=heads#L18]
  +
  +
{{hc|/etc/default/synapse|2=
  +
LD_PRELOAD=/usr/lib/libjemalloc.so
  +
}}
  +
  +
''jemalloc'' を有効にした後、キャッシュ設定を調整することでメモリフットプリントをさらに削減できます: [https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values]
  +
  +
{{hc|/etc/synapse/homeserver.yaml|
  +
caches:
  +
cache_autotuning:
  +
max_cache_memory_usage: 1024M
  +
target_cache_memory_usage: 758M
  +
min_cache_ttl: 5m
  +
}}
  +
  +
{{ic|cache_autotuning}} の下の設定オプションは、''jemalloc'' が有効になっていないと機能しません。

2024年8月5日 (月) 02:33時点における最新版

Matrix は、オープンな連携型インスタントメッセージングと VoIP のための野心的な新しいエコシステムです。サーバ、clients、そして IRC のような既存のメッセージングソリューションに接続するための Bridges ソフトウェアから構成されています。

Arch Linux の Matrix チャンネルは #archlinux:archlinux.org に存在します。国際的なコミュニティには独自のマトリックスルームがあります。詳しくは 国際コミュニティ を見て下さい。

https://matrix.org のような既存のサーバーを使うか、後述するあなた自身の Synapse サーバーをホストすることができます。

Matrix クライアントの一覧は アプリケーション一覧#Matrix clients を参照してください。

インストール

サーバーのリファレンス実装である Synapsematrix-synapse パッケージでインストールできます。パッケージをインストールすると synapse ユーザーが作成されます。

設定

インストールしたら、設定ファイルを作成する必要があります。ファイルは synapse ユーザーから読み込めるように設定してください:

[synapse]$ cd /var/lib/synapse
[synapse]$ python -m synapse.app.homeserver \
  --server-name my.domain.name \
  --config-path /etc/synapse/homeserver.yaml \
  --generate-config \
  --report-stats=yes

この操作により、指定したサーバー名に対応する SSL 鍵と自己署名証明書が生成されることに注意してください。サーバ名を変更した場合は、これらを再生成する必要があります。

Synapse サーバにインターネット経由でアクセスする場合は、リバースプロキシ を設定することを強く推奨します。

サービス

matrix-synapse パッケージには synapse.service という名前の systemd サービスが付属しています。このサービスは、ユーザ synapse として synapse サーバを起動し、設定ファイル /etc/synapse/homeserver.yaml を使用します。

ユーザー管理

synapse サーバーには最低でもひとりのユーザーが必要です。以下のようにコマンドでユーザーを作成できます:

$ register_new_matrix_user -c /etc/synapse/homeserver.yaml http://127.0.0.1:8008

または、matrix クライアント の一つ、例えば element-desktoplibpurplepurple-matrix-gitAUR プラグインを使うことができます。

Spider Webcrawler

Webcrawler を有効にするには、サーバーが生成するリンクのプレビューのために、追加パッケージ python-lxmlpython-netaddr をインストールする必要があります。その後、設定オプション url_preview_enabled: Truehomeserver.yaml で設定することができます。synapse サーバが内部ホストに対して任意の GET リクエストを発行しないようにするには、 url_preview_ip_range_blacklist: を設定する必要があります。

警告: デフォルトでは、ブラックリストは空白です。設定を行わないと、synapse サーバーはすべての内部ホストをクロールできます。

コメントアウトしなくてもよい例がいくつかあります。ローカルな IP 範囲をこのリストに追加して、synapse サーバがそれらをクロールしようとするのを防ぎます。homeserver.yaml を変更した後、サービスを再起動する必要があります。

興味深いチャンネル

KDE コミュニティには、特定のアプリケーション、言語、イベントなどのための様々なマトリックスルームがあります。詳しくは https://community.kde.org/Matrix をご覧ください。

GNOME コミュニティでは、さまざまなマトリックス・ルームと即座に通信するためのマトリックス・インスタンスも用意しています。詳しくは https://wiki.gnome.org/GettingInTouch/Matrix をご覧ください。

トラブルシューティング

読み取り専用のファイルシステム

デフォルトでは、synapse はサービス ファイルで設定された working-directory (/var/lib/synapse) にのみ書き込みを行うことができます。synapse が異なるパスに書き込むと、書き込みエラーが発生する場合があります(例:media-store が /var/lib/matrix-synapse/media にある場合)

他のディレクトリへのアクセスを許可するには、 synapse.serviceユニットファイルを置換する を作成し、 ReadWritePaths=your_paths[Service] セクションに追加することで行います。

メモリ消費量が多い

jemalloc をインストールすることで、Synapse のメモリ消費量を大幅に削減できます。[1] jemalloc を有効にするには、環境変数 LD_PRELOAD を適切に設定する必要があります。これは、/etc/default/synapse を作成することで実行でき、systemdユニットファイルによって適用されます。[2]

/etc/default/synapse
LD_PRELOAD=/usr/lib/libjemalloc.so

jemalloc を有効にした後、キャッシュ設定を調整することでメモリフットプリントをさらに削減できます: [3]

/etc/synapse/homeserver.yaml
caches:
  cache_autotuning:
    max_cache_memory_usage: 1024M
    target_cache_memory_usage: 758M
    min_cache_ttl: 5m

cache_autotuning の下の設定オプションは、jemalloc が有効になっていないと機能しません。