Установка сервера · 13 min read · Nov 01, 2025

Как установить и создать чат-сервер с использованием Matrix Synapse и Element на Ubuntu 22.04

Matrix — это открытый стандарт для децентрализованной и сквозной шифрованной связи. Это коллекция серверов и услуг, которые общаются друг с другом, используя стандартизированный API, который синхронизируется в реальном времени. Он использует домашние серверы для хранения информации об учетных записях и истории чата. Если один домашний сервер выходит из строя, другие серверы могут продолжать общение без проблем благодаря природе децентрализации. Вы можете использовать домашний сервер Matrix, размещенный кем-то другим, или разместить свой собственный, чтобы сохранить контроль над своими данными.

В этом руководстве вы узнаете, как установить и создать чат-сервер с использованием Synapse, реализации домашнего сервера Matrix. Element — это веб-клиент Matrix, построенный с использованием Matrix React SDK. Это позволит вам предложить чат Matrix в Интернете. Вы также можете использовать сервер с любым другим клиентом Matrix на ваш выбор. Мы также установим сервер Coturn для включения голосовых и видеозвонков. Служба Coturn является необязательной, если вы не заинтересованы в ее использовании.

Предварительные требования

  1. Сервер с установленной Ubuntu 22.04.
  2. Пользователь без прав sudo с правами root.
  3. Простой брандмауэр (UFW) включен и работает.
  4. Полностью квалифицированные доменные имена (FQDN) для Matrix, Element и Coturn, указывающие на ваш сервер. Мы будем использовать matrix.example.com, element.example.com и coturn.example.com соответственно для трех служб.
  5. Убедитесь, что все обновлено. $ sudo apt update && sudo apt upgrade

Шаг 1 - Настройка брандмауэра

Перед установкой любых пакетов первым шагом является настройка брандмауэра для открытия портов для HTTP, HTTPS и Synapse.

Проверьте статус брандмауэра.

$ sudo ufw status

Вы должны увидеть что-то вроде следующего.

Статус: активен

Кому                         Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (v6)

Откройте порты HTTP, HTTPS и Synapse в брандмауэре.

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

Проверьте статус еще раз, чтобы подтвердить.

$ sudo ufw status
Статус: активен

Кому                         Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде                  
8448                       ALLOW       Везде                  
80/tcp                     ALLOW       Везде                  
443                        ALLOW       Везде                  
OpenSSH (v6)               ALLOW       Везде (v6)             
8448 (v6)                  ALLOW       Везде (v6)             
80/tcp (v6)                ALLOW       Везде (v6)             
443 (v6)                   ALLOW       Везде (v6)

Шаг 2 - Установка Matrix Synapse

Добавьте GPG-ключ Matrix.

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

Добавьте репозиторий APT Matrix.

$ 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

Установите Matrix Synapse.

$ 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

Мы будем использовать официальный репозиторий APT PostgreSQL для установки. Выполните следующую команду, чтобы добавить GPG-ключ PostgreSQL.

$ 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

Для производственной среды рекомендуется запускать сервер Synapse с использованием прокси Nginx.

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

Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете либо установить Certbot с помощью репозитория Ubuntu, либо получить последнюю версию с помощью инструмента 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 protected] -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.

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

Создайте новый файл конфигурации для базы данных и откройте его для редактирования.

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

Вставьте следующие строки в редактор. Замените поле your-password на пароль пользователя PostgreSQL, который вы создали на шаге 3. Замените 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 включает индикаторы присутствия, которые показывают, если человек в сети. Это может вызвать высокую загрузку ЦП, поэтому вы можете отключить его. Создайте новый файл конфигурации для этого.

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

Вставьте следующую строку в редактор.

presence:
  enabled: false

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите службу Synapse, чтобы применить изменения.

Создайте нового пользователя Matrix. Вам будет предложено ввести имя пользователя и пароль. Поскольку это первый пользователь, которого мы создаем, введите 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

  # Если почтовый сервер не требует аутентификации, пропустите эти 2 строки
  smtp_user: '[email protected]'
  smtp_pass: 'password'

  # Необязательно, требовать шифрования с помощью STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Example Chat'  # определяет значение для %(app)s в notif_from и теме письма
  notif_from: "%(app)s <[email protected]>"

Чтобы отключить подтверждение по электронной почте, вставьте вместо этого следующую строку.

enable_registration_without_verification: true

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите Synapse, чтобы применить конфигурацию.

$ 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

Вставьте следующий код в него.

# принудить HTTPS
server {
    # Порт клиента
    listen 80;
    listen [::]:80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.example.com;

    # Порт клиента
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # Порт федерации
    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
    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 по умолчанию позволяет загружать файлы размером до 1M
            # Увеличьте client_max_body_size, чтобы соответствовать max_upload_size, определенному в homeserver.yaml
            client_max_body_size 50M;
    }
}

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Проверьте синтаксис конфигурационного файла Nginx.

$ sudo nginx -t
nginx: конфигурационный файл /etc/nginx/nginx.conf синтаксически верен
nginx: тест конфигурационного файла /etc/nginx/nginx.conf успешен

Перезапустите службу Nginx.

$ sudo systemctl restart nginx

Шаг 8 - Установка Coturn

Вам нужно будет установить сервер Traversal Using Relays around 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

Сгенерируйте SSL-сертификат для Turn ( 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 — это UDP, TCP не нужен
no-tcp-relay

# Не разрешать трафик к частным IP-адресам
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

# Ограничить количество сессий на пользователя
user-quota=12
# Ограничить общее количество сессий
total-quota=1200

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите Coturn, чтобы применить конфигурацию.

$ sudo systemctl restart coturn

Создайте новый файл конфигурации Synapse для Coturn.

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

Вставьте следующие строки в него. Замените значение turn_shared_secret на значение static-auth-secret из файла urnserver.conf.

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, когда будет предложено.

Перезапустите Synapse, чтобы применить изменения.

$ sudo systemctl restart matrix-synapse

Шаг 9 - Доступ к Matrix

Вы можете получить доступ к Matrix Chat, используя веб-клиент Element по адресу https://app.element.io. Нажмите кнопку Войти, чтобы продолжить.

Страница входа в Element Web

Нажмите ссылку Редактировать под Домашний сервер. Введите matrix.example.com в качестве вашего домашнего сервера.

Клиент Element Пользовательский домашний сервер

Если клиент правильно обнаружит ваш домашний сервер, граница и текст станут зелеными, иначе они будут показаны красным. Нажмите Продолжить, чтобы продолжить.

Вход в пользовательский домашний сервер Element

Нажмите кнопку Войти, чтобы войти. Вам будет предложено создать безопасную и зашифрованную резервную копию.

Безопасная резервная копия Matrix

Выберите опцию Введите фразу безопасности, чтобы создать фразу безопасности, которая будет требоваться каждый раз при входе. Нажмите Продолжить, чтобы продолжить.

Фраза безопасности Element

Введите фразу безопасности и нажмите кнопку Продолжить, чтобы продолжить. Вам будет предложено подтвердить ее снова на следующем экране.

Подтверждение фразы безопасности Element

Введите фразу еще раз и нажмите кнопку Продолжить, чтобы продолжить.

Всплывающее окно ключа безопасности Element

Вам будет предоставлен набор ключей безопасности, которые вы можете использовать, если забудете свою фразу безопасности. Нажмите кнопку Скачать, чтобы сохранить их.

Нажмите кнопку Продолжить, чтобы продолжить.

Проверка пароля Element

Вас попросят ввести пароль вашей учетной записи. Введите пароль и нажмите кнопку Продолжить, чтобы завершить настройку зашифрованной резервной копии.

Панель инструментов веб-клиента Element

Мы создали групповую чат-комнату под названием 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 - Настройка Element

Скопируйте тот же файл конфигурации элемента.

$ 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, когда будет предложено.

Сгенерируйте SSL-сертификат для клиента Element.

$ 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
    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: конфигурационный файл /etc/nginx/nginx.conf синтаксически верен
nginx: тест конфигурационного файла /etc/nginx/nginx.conf успешен

Перезапустите службу Nginx.

$ sudo systemctl restart nginx

Вы можете получить доступ к клиенту Element по адресу https://element.example.com в вашем браузере. Войдите, и вы будете перенаправлены на панель приложения.

Панель управления самостоятелльного хостинга Element

Заключение

Это завершает наше руководство по установке сервера чата Matrix Synapse вместе с Coturn и веб-клиентом Element с использованием Nginx в качестве прокси-сервера. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.