ウェブサイト検索

Ubuntu 22.04でMatrix SynapseとElementを使用してチャットサーバーをインストールおよび作成する方法


Ubuntu 22.04でMatrix SynapseとElementを使用してチャットサーバーをインストールおよび作成する方法

このページで

  1. 前提条件
  2. ステップ1 - ファイアウォールを設定する
  3. ステップ2 - Matrix Synapseをインストールする
  4. ステップ3 - PostgreSQLをインストールして構成する
  5. ステップ4 - Nginxをインストールする
  6. ステップ5 - SSLをインストールする
  7. ステップ6 - Matrix Synapseを設定する
  8. ステップ7 - Nginxを設定する
  9. ステップ8 - Coturnをインストールする
  10. ステップ9 - アクセスマトリックス
  11. ステップ10 - Elementをインストールする
  12. ステップ11 - 要素を構成する
  13. 結論

Matrixは、分散型でエンドツーエンドの暗号化通信のためのオープンな標準です。サーバーとサービスの集まりで、標準化されたAPIを用いてリアルタイムで相互に通信します。アカウント情報とチャット履歴を保存するためにホームサーバーを使用します。一つのホームサーバーがダウンしても、分散型の性質により他のサーバーは問題なく通信を続けることができます。他の誰かがホストするMatrixホームサーバーを使用することも、自分自身のサーバーをホストしてデータの管理を維持することも可能です。

このチュートリアルでは、Matrixのホームサーバー実装であるSynapseを使用してチャットサーバーをインストールし、作成する方法を学びます。Elementは、Matrix React SDKを使用して構築されたMatrixのウェブクライアントです。これにより、ウェブ上でMatrixチャットを提供することができます。また、選択した他のMatrixクライアントとともにサーバーを使用することも可能です。音声通話とビデオ通話を有効にするためにCoturnサーバーもインストールします。Coturnサービスは、使用することに興味がない場合はオプションです。

前提条件

    Ubuntu 22.04を実行しているサーバー。

    ルート権限を持つ非sudoユーザー。

    シンプルなファイアウォール(UFW)が有効で実行中です。

    あなたのサーバーにポイントするMatrix、Element、Coturnの完全修飾ドメイン名(FQDN)。私たちは3つのサービスのために、それぞれmatrix.example.com、element.example.com、およびcoturn.example.comを使用します。

    すべてが最新であることを確認してください。

    sudo apt update && sudo apt upgrade
    

ステップ1 - ファイアウォールを設定する

パッケージをインストールする前に、最初のステップはファイアウォールを設定してHTTP、HTTPS、およびSynapse用のポートを開くことです。

ファイアウォールの状態を確認してください。

sudo ufw status

次のようなものが表示されるはずです。

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

ファイアウォールでHTTP、HTTPS、およびSynapseポートを開きます。

sudo ufw allow 8448
sudo ufw allow http
sudo ufw allow https

再度ステータスを確認して、確認してください。

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
8448                       ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
8448 (v6)                  ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)

ステップ2 - Matrix Synapseをインストールする

MatrixのGPGキーを追加します。

sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg

行列APTリポジトリを追加します。

echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list

システムのリポジトリリストを更新します。

sudo apt update

マトリックスシナプスをインストールします。

sudo apt install matrix-synapse-py3

インストール中に、サーバー名が求められます。これはあなたのMatrix IDの一部です。これをあなたのMatrixドメイン名に置き換えて入力してください。これがあなたのホームサーバーのアドレスとして機能します。

あなたはまた、ホームサーバーに関する匿名化された統計情報をMatrixに送信するかどうか尋ねられます。Nと入力して拒否してください。

これらの設定は後でファイル/etc/matrix-synapse/conf.d/server_name.yamlで変更できます。

Matrix Synapseのサービスはインストール中に有効化され、開始されます。サービスの状態を確認してください。

sudo systemctl status matrix-synapse
? matrix-synapse.service - Synapse Matrix homeserver
     Loaded: loaded (/lib/systemd/system/matrix-synapse.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-26 09:38:38 UTC; 1min 19s ago
    Process: 12926 ExecStartPre=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/ --generate-key>   Main PID: 12931 (python)
      Tasks: 8 (limit: 2238)
     Memory: 87.3M
        CPU: 4.180s
     CGroup: /system.slice/matrix-synapse.service
             ??12931 /opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/

Sep 26 09:38:36 matrix matrix-synapse[12926]: Generating signing key file /etc/matrix-synapse/homeserver.signing.key
Sep 26 09:38:37 matrix matrix-synapse[12931]: This server is configured to use 'matrix.org' as its trusted key server via the
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'trusted_key_servers' config option. 'matrix.org' is a good choice for a key
Sep 26 09:38:37 matrix matrix-synapse[12931]: server since it is long-lived, stable and trusted. However, some admins may
Sep 26 09:38:37 matrix matrix-synapse[12931]: wish to use another server for this purpose.
Sep 26 09:38:37 matrix matrix-synapse[12931]: To suppress this warning and continue using 'matrix.org', admins should set
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'suppress_key_server_warning' to 'true' in homeserver.yaml.
Sep 26 09:38:37 matrix matrix-synapse[12931]: --------------------------------------------------------------------------------
Sep 26 09:38:38 matrix matrix-synapse[12931]: Config is missing macaroon_secret_key
Sep 26 09:38:38 matrix systemd[1]: Started Synapse Matrix homeserver.

ステップ3 - PostgreSQLをインストールして構成する

PostgreSQLの公式APTリポジトリを使用してインストールします。以下のコマンドを実行してPostgreSQLのGPGキーを追加してください。

curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

APTリポジトリをソースリストに追加してください。

sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

システムリポジトリを更新してください。

sudo apt update

これで、次のコマンドを使用してPostgreSQLをインストールできます。

sudo apt install postgresql postgresql-contrib

PostgreSQLサービスの状態を確認してください。

sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2022-09-26 09:41:36 UTC; 2min 14s ago
    Process: 15586 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 15586 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Sep 26 09:41:36 matrix systemd[1]: Starting PostgreSQL RDBMS...
Sep 26 09:41:36 matrix systemd[1]: Finished PostgreSQL RDBMS.

サービスはデフォルトで有効になっていて、実行されていることがわかります。

postgresシステムアカウントにログインします。

sudo -su postgres

PostgreSQLのために新しいデータベースユーザーとデータベースを作成します。

createuser --pwprompt synapse
createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse

postgres アカウントからログアウトします。

exit

ステップ4 - Nginxをインストールする

運用環境では、Nginxプロキシを使用してSynapseサーバーを実行することが推奨されます。

Ubuntu 22.04には古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

Nginxの署名キーをインポートします。

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Nginxの安定版のリポジトリを追加してください。

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

システムリポジトリを更新してください。

sudo apt update

Nginxをインストールします。

sudo apt install nginx

インストールを確認してください。

nginx -v
nginx version: nginx/1.22.0

Nginxサーバーを開始します。

sudo systemctl start nginx

ステップ5 - SSLをインストールする

SSL証明書を生成するためにCertbotをインストールする必要があります。Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得することができます。私たちはSnapdバージョンを使用します。

Ubuntu 22.04 には、デフォルトで Snapd がインストールされています。Snapd のバージョンが最新であることを確認するには、次のコマンドを実行してください。

sudo snap install core
sudo snap refresh core

Certbotをインストールします。

sudo snap install --classic certbot

次のコマンドを使用して、Certbot コマンドが /usr/bin ディレクトリへのシンボリックリンクを作成することで実行できることを確認してください。

sudo ln -s /snap/bin/certbot /usr/bin/certbot

次のコマンドを実行してSSL証明書を生成します。

sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d matrix.example.com

上記のコマンドは、サーバーの/etc/letsencrypt/live/matrix.example.comディレクトリに証明書をダウンロードします。

ディフィー・ヘルマン群証明書を生成します。

sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

SSLの更新が問題なく機能しているかどうかを確認するために、プロセスのドライランを行ってください。

sudo certbot renew --dry-run

エラーが見当たらなければ、すべて準備完了です。あなたの証明書は自動的に更新されます。

ステップ6 - Matrix Synapseを設定する

Matrixサーバーは、ファイル/etc/matrix-synapse/homeserver.yamlを介して設定できますが、アップグレードのたびに上書きされるため、推奨されません。商用利用の場合、設定ファイルは/etc/matrix-synapse/conf.dフォルダーに配置するべきです。

Synapseのインストールにより、/etc/matrix-synapse/conf.dフォルダーに2つの設定ファイルが作成されました。

ls /etc/matrix-synapse/conf.d
report_stats.yaml  server_name.yaml

データベースの新しい設定ファイルを作成し、編集のために開きます。

sudo nano /etc/matrix-synapse/conf.d/database.yaml

以下の行をエディタに貼り付けます。your-passwordフィールドを、ステップ3で作成したPostgreSQLユーザーパスワードに置き換えます。データベースを別の場所でホストしている場合は、localhostをサーバーのIPアドレスに置き換えます。

database:
  name: psycopg2
  args:
    user: synapse
    password: 'your-password'
    database: synapsedb
    host: localhost
    cp_min: 5
    cp_max: 10

Ctrl + X を押してファイルを保存し、プロンプトが表示されたら Y を入力します。

秘密の登録キーを作成します。このキーは安全に保管する必要があります。なぜなら、このキーを使えば、登録が無効になっていても誰でも新しいユーザーを登録できるからです。

echo "registration_shared_secret: '$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)'" | sudo tee /etc/matrix-synapse/conf.d/registration_shared_secret.yaml

デフォルトでは、Synapseは人がオンラインかどうかを示すプレゼンスインジケーターを有効にしています。これによりCPU使用率が高くなる可能性があるため、無効にすることができます。同じための新しい設定ファイルを作成してください。

sudo nano /etc/matrix-synapse/conf.d/presence.yaml

次の文をエディターに貼り付けてください。

presence:
  enabled: false

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

変更を適用するためにシナプスサービスを再起動してください。

新しいマトリクスユーザーを作成します。ユーザー名とパスワードを求められます。これは初めて作成するユーザーなので、ユーザーを管理者にするかどうかの質問があった場合はyesと入力してください。

register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml http://localhost:8008
New user localpart [navjot]: navjot
Password: 
Confirm password: 
Make admin [no]: yes
Sending registration request...
Success!

公開登録を開きたい場合は、新しい設定ファイルを作成してください。

sudo nano /etc/matrix-synapse/conf.d/registration.yaml

その中に次の行を貼り付けてください。

enable_registration: true

デフォルトでは、Synapseはメール認証なしに登録を許可していません。メール認証を有効にするには、以下の行を貼り付けてください。

registrations_require_3pid:
  - email

email:
  smtp_host: mail.example.com
  smtp_port: 587

  # If mail server has no authentication, skip these 2 lines
  smtp_user: '[email '
  smtp_pass: 'password'

  # Optional, require encryption with STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Example Chat'  # defines value for %(app)s in notif_from and email subject
  notif_from: "%(app)s <[email >"

メール認証を無効にするには、代わりに以下の行を貼り付けてください。

enable_registration_without_verification: true

Ctrl + X を押してファイルを保存し、プロンプトが表示されたら Y を入力します。

設定を適用するためにシナプスを再起動してください。

sudo systemctl restart matrix-synapse

ステップ7 - Nginxを設定する

ファイル /etc/nginx/nginx.conf を編集のために開いてください。

sudo nano /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;の前に次の行を追加してください。

server_names_hash_bucket_size  64;

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

/etc/nginx/conf.d/synapse.conf ファイルを作成して編集のために開いてください。

sudo nano /etc/nginx/conf.d/synapse.conf

そのコードをそこに貼り付けてください。

enforce HTTPS
server {
    # Client port
    listen 80;
    listen [::]:80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.example.com;

    # Client port
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # Federation port
    listen 8448 ssl http2 default_server;
    listen [::]:8448 ssl http2 default_server;

    access_log  /var/log/nginx/synapse.access.log;
    error_log   /var/log/nginx/synapse.error.log;

    # TLS configuration
    ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/matrix.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location ~ ^(/_matrix|/_synapse/client) {
            proxy_pass http://localhost:8008;
            proxy_http_version 1.1;

            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;

            # Nginx by default only allows file uploads up to 1M in size
            # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
            client_max_body_size 50M;
    }
}

ファイルを保存するには、Ctrl + Xを押し、完了したらプロンプトが表示されたときにYを入力します。

Nginxの設定ファイルの構文を確認してください。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginxサービスを再起動してください。

sudo systemctl restart nginx

ステップ8 - Coturnをインストールする

ボイスおよびビデオ通話を有効にするには、NAT(ネットワークアドレス変換)周辺での中継を使用したトラバーサル(TURN)サーバーをインストールする必要があります。この目的のために、Coturnパッケージをインストールします。この機能が不要な場合は、このステップをスキップしても構いません。

Ubuntu 22.04は、バグの問題があったためCoturnパッケージを出荷していませんでしたが、その問題は解決されました。しかし、非公式リポジトリを使用してCoturnをインストールする別の方法があります。任意でDockerを使用してCoturnをインストールすることもできますが、その方法はこのチュートリアルの範囲外なので使用しません。

非公式のCoturnリポジトリを追加します。

sudo add-apt-repository ppa:ubuntuhandbook1/coturn

Coturnをインストールします。

sudo apt install coturn

TURNとUDPポートを開いてください。

sudo ufw allow 3478
sudo ufw allow 5349
sudo ufw allow 49152:65535/udp

TurnのためにSSL証明書を生成します(turn.example.com)。

sudo certbot certonly --nginx -d turn.example.com

認証シークレットを生成し、それを設定ファイルに保存してください。

echo "static-auth-secret=$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)" | sudo tee /etc/turnserver.conf

設定ファイルを編集のために開いてください。

sudo nano /etc/turnserver.conf

認証シークレットの下に以下の行を貼り付けてください。

use-auth-secret
realm=turn.example.com
cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem

VoIP is UDP, no need for TCP
no-tcp-relay

Do not allow traffic to private IP ranges
no-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
denied-peer-ip=::1
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
denied-peer-ip=100::-100::ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Limit number of sessions per user
user-quota=12
Limit total number of sessions
total-quota=1200

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

設定を適用するためにCoturnを再起動します。

sudo systemctl restart coturn

Coturnの新しいSynapse構成ファイルを作成します。

sudo nano /etc/matrix-synapse/conf.d/turn.yaml

以下の行をそれに貼り付けてください。turn_shared_secretの値を\etc\turnserver.confファイルのstatic-auth-secretの値に置き換えてください。

turn_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_shared_secret: 'static-auth-secret'
turn_user_lifetime: 86400000
turn_allow_guests: True

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

変更を適用するには、シナプスを再起動してください。

sudo systemctl restart matrix-synapse

ステップ9 - アクセスマトリックス

Elementのウェブクライアントを使用して、Matrix Chatにアクセスできます。https://app.element.ioで確認してください。続行するには、サインインボタンをクリックしてください。

ホームサーバーの下にある編集リンクをクリックします。matrix.example.comをホームサーバーとして入力します。

クライアントがあなたのホームサーバーを正しく検出した場合、境界線とテキストは緑色になります。そうでない場合は赤色で表示されます。続行をクリックして進んでください。

サインイン ボタンをクリックしてログインします。安全で暗号化されたバックアップを作成するように求められます。

セキュリティフレーズの入力オプションを選択して、ログインするたびに必要となるセキュリティフレーズを作成します。続行するには続けるをクリックしてください。

セキュリティフレーズを入力し、続行ボタンをクリックして進んでください。次の画面で再確認を求められます。

もう一度フレーズを入力して、続行をクリックして進んでください。

セキュリティフレーズを忘れた場合に使用できる一連のセキュリティキーが提供されます。ダウンロードボタンをクリックして保存してください。

続けるボタンをクリックして進んでください。

アカウントのパスワードを求められます。パスワードを入力し、続行ボタンをクリックして暗号化バックアップの設定を完了してください。

私たちは上記のようにHowtoforgeというグループチャットルームを作りました。

ステップ10 - Elementをインストールする

jqパッケージをインストールして、JSONテキストプロセッサをインストールします。

sudo apt install jq

Elementのためのディレクトリを作成します。

sudo mkdir -p /var/www/element

最新のElementリリースを取得するための新しいファイルを作成してください。

sudo nano /var/www/element/update.sh

次の行を追加してください。

#!/bin/sh
set -e

install_location="/var/www/element"
latest="$(curl -s https://api.github.com/repos/vector-im/element-web/releases/latest | jq -r .tag_name)"

cd "$install_location"

[ ! -d "archive" ] && mkdir -p "archive"
[ -d "archive/element-${latest}" ] && rm -r "archive/element-${latest}"
[ -f "archive/element-${latest}.tar.gz" ] && rm "archive/element-${latest}.tar.gz"

wget "https://github.com/vector-im/element-web/releases/download/${latest}/element-${latest}.tar.gz" -P "archive"
tar xf "archive/element-${latest}.tar.gz" -C "archive"

[ -L "${install_location}/current" ] && rm "${install_location}/current"
ln -sf "${install_location}/archive/element-${latest}" "${install_location}/current"
ln -sf "${install_location}/config.json" "${install_location}/current/config.json"

Ctrl + X を押してファイルを保存し、プロンプトが表示されたら Y を入力します。

ファイルを実行可能にしてください。

sudo chmod +x /var/www/element/update.sh

スクリプトを実行してElementをダウンロードします。

sudo /var/www/element/update.sh

ステップ11 - 要素を構成する

同じ要素設定ファイルをコピーしてください。

sudo cp /var/www/element/current/config.sample.json /var/www/element/config.json

設定ファイルを編集のために開いてください。

sudo nano /var/www/element/config.json

次の行を見つけてください。

"m.homeserver": {
    "base_url": "https://matrix-client.matrix.org",
    "server_name": "matrix.org"
},

デフォルトのMatrixホームサーバーアドレスをあなたのホームサーバーに変更し、server_name変数を削除してください。

"m.homeserver": {
    "base_url": "https://matrix.example.com",
    "server_name": "matrix.element.com"  
},

ウェブサイトのタイトルでElementの代わりに自分の名前を使いたい場合は、ブランド名を変更してください。

"brand": "Howtoforge Example Chat",

disable_guests 変数を true に設定して、ゲストが Element を使用できないようにします。

"disable_guests": true,

Ctrl + X を押してファイルを保存し、プロンプトが表示されたら Y を入力します。

Elementクライアント用のSSL証明書を生成します。

sudo certbot certonly --nginx -d element.example.com

/etc/nginx/conf.d/element.conf というファイルを作成して編集のために開いてください。

sudo nano /etc/nginx/conf.d/element.conf

その中に次の行を貼り付けてください。

server {
    listen 80;
    listen [::]:80;
    server_name element.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name element.example.com;

    root /var/www/element/current;
    index index.html;

    access_log  /var/log/nginx/element.access.log;
    error_log   /var/log/nginx/element.error.log;

    add_header Referrer-Policy "strict-origin" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    # TLS configuration
    ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/element.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
}

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

Nginxの設定ファイルの構文を確認してください。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginxサービスを再起動してください。

sudo systemctl restart nginx

ブラウザでURL https://element.example.com にアクセスしてElementクライアントを利用できます。ログインするとアプリのダッシュボードに移動します。

結論

これで、Nginxをプロキシサーバーとして使用して、Matrix Synapseチャットサーバー、Coturn、Elementウェブクライアントのインストールに関するチュートリアルは終了です。質問がある場合は、以下のコメント欄に投稿してください。

関連記事: