「Matrix」の版間の差分
(前文の情報を更新) |
(→トラブルシューティング: 同期) |
||
(2人の利用者による、間の9版が非表示) | |||
1行目: | 1行目: | ||
+ | [[Category:インスタントメッセージ]] |
||
[[Category:Voice over IP]] |
[[Category:Voice over IP]] |
||
[[en:Matrix]] |
[[en:Matrix]] |
||
16行目: | 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 鍵と自己署名証明書が生成されることに注意してください。サーバ名を変更した場合は、これらを再生成する必要があります。 |
|
+ | Synapse サーバにインターネット経由でアクセスする場合は、[https://github.com/matrix-org/synapse/blob/develop/docs/reverse_proxy.md リバースプロキシ] を設定することを強く推奨します。 |
||
− | なお、同一のドメイン名にて Matrix 以外のサービスを動作させないことと、リバースプロキシを設定することが推奨されます。[https://github.com/matrix-org/synapse/#id9 公式ドキュメント Security Note] も参照してください。 |
||
== サービス == |
== サービス == |
||
− | パッケージには {{ic|synapse.service}} という名前の systemd サービスが付属しています。サービス |
+ | {{Pkg|matrix-synapse}} パッケージには {{ic|synapse.service}} という名前の systemd サービスが付属しています。このサービスは、ユーザ ''synapse'' として synapse サーバを起動し、設定ファイル {{ic|/etc/synapse/homeserver.yaml}} を使用します。 |
== ユーザー管理 == |
== ユーザー管理 == |
||
synapse サーバーには最低でもひとりのユーザーが必要です。以下のようにコマンドでユーザーを作成できます: |
synapse サーバーには最低でもひとりのユーザーが必要です。以下のようにコマンドでユーザーを作成できます: |
||
− | {{bc|$ register_new_matrix_user -c /etc/synapse/homeserver.yaml |
+ | {{bc|<nowiki>$ register_new_matrix_user -c /etc/synapse/homeserver.yaml http://127.0.0.1:8008</nowiki>}} |
− | + | または、[https://matrix.org/docs/projects/try-matrix-now.html matrix クライアント] の一つ、例えば {{Pkg|element-desktop}} や {{pkg|libpurple}} の {{AUR|purple-matrix-git}} プラグインを使うことができます。 |
|
== Spider Webcrawler == |
== Spider Webcrawler == |
||
43行目: | 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|デフォルトは |
+ | {{Warning|デフォルトでは、ブラックリストは空白です。設定を行わないと、synapse サーバーはすべての内部ホストをクロールできます。}} |
コメントアウトしなくてもよい例がいくつかあります。ローカルな IP 範囲をこのリストに追加して、synapse サーバがそれらをクロールしようとするのを防ぎます。{{ic|homeserver.yaml}} を変更した後、サービスを再起動する必要があります。 |
コメントアウトしなくてもよい例がいくつかあります。ローカルな IP 範囲をこのリストに追加して、synapse サーバがそれらをクロールしようとするのを防ぎます。{{ic|homeserver.yaml}} を変更した後、サービスを再起動する必要があります。 |
||
50行目: | 52行目: | ||
KDE コミュニティには、特定のアプリケーション、言語、イベントなどのための様々なマトリックスルームがあります。詳しくは https://community.kde.org/Matrix をご覧ください。 |
KDE コミュニティには、特定のアプリケーション、言語、イベントなどのための様々なマトリックスルームがあります。詳しくは https://community.kde.org/Matrix をご覧ください。 |
||
+ | |||
+ | GNOME コミュニティでは、さまざまなマトリックス・ルームと即座に通信するためのマトリックス・インスタンスも用意しています。詳しくは https://wiki.gnome.org/GettingInTouch/Matrix をご覧ください。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
55行目: | 59行目: | ||
=== 読み取り専用のファイルシステム === |
=== 読み取り専用のファイルシステム === |
||
− | デフォルトでは、synapse はサービス ファイルで設定された working-directory ({{ic|/var/lib/synapse}}) にのみ書き込みを行うことができます。synapse が異なるパスに書き込むと、書き込みエラーが発生する場合があります |
+ | デフォルトでは、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 を参照してください。
目次
インストール
サーバーのリファレンス実装である Synapse は matrix-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-desktop や libpurple の purple-matrix-gitAUR プラグインを使うことができます。
Spider Webcrawler
Webcrawler を有効にするには、サーバーが生成するリンクのプレビューのために、追加パッケージ python-lxml と python-netaddr をインストールする必要があります。その後、設定オプション url_preview_enabled: True
は homeserver.yaml
で設定することができます。synapse サーバが内部ホストに対して任意の GET リクエストを発行しないようにするには、 url_preview_ip_range_blacklist:
を設定する必要があります。
コメントアウトしなくてもよい例がいくつかあります。ローカルな 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 が有効になっていないと機能しません。