「Matrix」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (カテゴリの修正) |
(データベースを翻訳して追加) |
||
| (3人の利用者による、間の18版が非表示) | |||
| 1行目: | 1行目: | ||
| + | [[Category:インスタントメッセージ]] |
||
[[Category:Voice over IP]] |
[[Category:Voice over IP]] |
||
[[en:Matrix]] |
[[en:Matrix]] |
||
| − | [https://matrix.org/ Matrix] はオープンなインスタントメッセージ |
+ | [https://matrix.org/ Matrix] は、オープンな連携型インスタントメッセージングと VoIP のための野心的な新しいエコシステムです。サーバー、[https://matrix.org/clients/ クライアント]、そして [[wikipedia:ja:Internet Relay Chat|IRC]] のような既存のメッセージングソリューションに接続するための [https://matrix.org/bridges/ Bridges] ソフトウェアから構成されています。 |
| + | |||
| + | Arch Linux の Matrix チャンネルは [https://matrix.to/#/#archlinux:archlinux.org #archlinux:archlinux.org] に存在します。国際的なコミュニティには独自のマトリックスルームがあります。詳しくは [[国際コミュニティ]] を見て下さい。 |
||
| + | |||
| + | Matrix クライアントの一覧は [[アプリケーション一覧#Matrix clients]] を参照してください。 |
||
| + | |||
| + | https://matrix.org のような既存のサーバーを使うか、後述するあなた自身の Synapse サーバーをホストすることもできます。 |
||
== インストール == |
== インストール == |
||
| − | サーバーのリファレンス実装である '''Synapse''' は {{Pkg|matrix-synapse}} パッケージで[[インストール]]でき |
+ | サーバーのリファレンス実装である '''Synapse''' は {{Pkg|matrix-synapse}} パッケージで[[インストール]]できます。パッケージをインストールすると ''synapse'' ユーザーが作成されます。 |
== 設定 == |
== 設定 == |
||
インストールしたら、設定ファイルを作成する必要があります。ファイルは ''synapse'' ユーザーから読み込めるように設定してください: |
インストールしたら、設定ファイルを作成する必要があります。ファイルは ''synapse'' ユーザーから読み込めるように設定してください: |
||
| − | {{bc|<nowiki> |
||
| − | $ cd /var/lib/synapse |
||
| − | $ sudo -u synapse python2 -m synapse.app.homeserver \ |
||
| − | --server-name my.domain.name \ |
||
| − | --config-path /etc/synapse/homeserver.yaml \ |
||
| − | --generate-config \ |
||
| − | --report-stats=yes |
||
| − | </nowiki>}} |
||
| + | {{bc|1= |
||
| − | 上記のコマンドで、入力したサーバー名の SSL 鍵と自己署名証明書が生成されます。サーバー名を変更した場合は再生成してください。 |
||
| + | # generate_config --server-name ''my.domain.name'' \ |
||
| + | --config-dir /etc/synapse \ |
||
| + | --data-dir /var/lib/synapse \ |
||
| + | --report-stats yes \ |
||
| + | --generate-secrets \ |
||
| + | --output-file /etc/synapse/homeserver.yaml |
||
| + | # generate_log_config -o /etc/synapse/''my.domain.name''.log.config \ |
||
| − | === ウェブクライアント === |
||
| + | -f /var/log/synapse/homeserver.log |
||
| + | |||
| + | # generate_signing_key --output_file /etc/synapse/''my.domain.name''.signing.key |
||
| + | # chown -R synapse:synapse /etc/synapse \ |
||
| − | synapse のデフォルト設定ではウェブクライアント機能が有効になっています。ただし {{Pkg|python2-matrix-angular-sdk}}{{Broken package link|パッケージが存在しません}} をインストールしていないとウェブクライアント機能が有効になっているせいで synapse の起動が失敗します。ウェブクライアントを無効化するか {{Pkg|python2-matrix-angular-sdk}}{{Broken package link|パッケージが存在しません}} をインストールしてください。 |
||
| + | /var/log/synapse |
||
| − | {{Note|[https://matrix.org/docs/projects/client/matrix-console.html 開発者のウェブサイト] より: Matrix.org のオリジナルの AngularJS ウェブクライアントには性能に問題を抱えておりメンテナンスは停滞しています。代わりに Riot と matrix-react-sdk を使うようにしてください。}} |
||
| + | }} |
||
| + | |||
| + | この操作により、指定したサーバー名に対応する SSL 鍵と自己署名証明書が生成されることに注意してください。サーバ名を変更した場合は、これらを再生成する必要があります。 |
||
| + | |||
| + | Synapse サーバにインターネット経由でアクセスする場合は、[https://github.com/matrix-org/synapse/blob/develop/docs/reverse_proxy.md リバースプロキシ] を設定することを強く推奨します。 |
||
| + | |||
| + | == データベース == |
||
| + | |||
| + | Synapse は、サーバーのテストにのみ SQLite を使用し、運用には Postgres を使用します。 |
||
| + | |||
| + | Postgres を使用するには、{{Pkg|python-psycopg2}} パッケージをインストールする必要があります。 |
||
| + | |||
| + | インストールと設定の詳細については、公式ウェブサイトをご覧ください: [https://github.com/element-hq/synapse/blob/develop/docs/postgres.md Using Postgres] |
||
== サービス == |
== サービス == |
||
| − | パッケージには {{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 == |
||
| + | |||
| + | 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 サーバーはすべての内部ホストをクロールできます。}} |
||
| + | |||
| + | コメントアウトしなくてもよい例がいくつかあります。ローカルな IP 範囲をこのリストに追加して、synapse サーバがそれらをクロールしようとするのを防ぎます。{{ic|homeserver.yaml}} を変更した後、サービスを再起動する必要があります。 |
||
| + | |||
| + | == 興味深いチャンネル == |
||
| + | |||
| + | KDE コミュニティには、特定のアプリケーション、言語、イベントなどのための様々なマトリックスルームがあります。詳しくは https://community.kde.org/Matrix をご覧ください。 |
||
| + | |||
| + | GNOME コミュニティでは、さまざまなマトリックス・ルームと即座に通信するためのマトリックス・インスタンスも用意しています。詳しくは https://wiki.gnome.org/GettingInTouch/Matrix をご覧ください。 |
||
| + | |||
| + | == トラブルシューティング == |
||
| + | |||
| + | === 読み取り専用のファイルシステム === |
||
| + | |||
| + | デフォルトでは、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]}} セクションに追加することで行います。 |
||
| + | |||
| + | === メモリ消費量が多い === |
||
| + | |||
| + | {{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'' が有効になっていないと機能しません。 |
||
2025年3月20日 (木) 15:03時点における最新版
Matrix は、オープンな連携型インスタントメッセージングと VoIP のための野心的な新しいエコシステムです。サーバー、クライアント、そして IRC のような既存のメッセージングソリューションに接続するための Bridges ソフトウェアから構成されています。
Arch Linux の Matrix チャンネルは #archlinux:archlinux.org に存在します。国際的なコミュニティには独自のマトリックスルームがあります。詳しくは 国際コミュニティ を見て下さい。
Matrix クライアントの一覧は アプリケーション一覧#Matrix clients を参照してください。
https://matrix.org のような既存のサーバーを使うか、後述するあなた自身の Synapse サーバーをホストすることもできます。
目次
インストール
サーバーのリファレンス実装である Synapse は matrix-synapse パッケージでインストールできます。パッケージをインストールすると synapse ユーザーが作成されます。
設定
インストールしたら、設定ファイルを作成する必要があります。ファイルは synapse ユーザーから読み込めるように設定してください:
# generate_config --server-name my.domain.name \
--config-dir /etc/synapse \
--data-dir /var/lib/synapse \
--report-stats yes \
--generate-secrets \
--output-file /etc/synapse/homeserver.yaml
# generate_log_config -o /etc/synapse/my.domain.name.log.config \
-f /var/log/synapse/homeserver.log
# generate_signing_key --output_file /etc/synapse/my.domain.name.signing.key
# chown -R synapse:synapse /etc/synapse \
/var/log/synapse
この操作により、指定したサーバー名に対応する SSL 鍵と自己署名証明書が生成されることに注意してください。サーバ名を変更した場合は、これらを再生成する必要があります。
Synapse サーバにインターネット経由でアクセスする場合は、リバースプロキシ を設定することを強く推奨します。
データベース
Synapse は、サーバーのテストにのみ SQLite を使用し、運用には Postgres を使用します。
Postgres を使用するには、python-psycopg2 パッケージをインストールする必要があります。
インストールと設定の詳細については、公式ウェブサイトをご覧ください: Using Postgres
サービス
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 が有効になっていないと機能しません。