Перейти к основному контенту

Установка Matrix Synapse и Element

Подробности урока

Уровень сложности Лёгкий
Права root Требуются
Требования Терминал Linux
Категория Установка ПО
Совместимость с ОС Debian, Ubuntu
Примерное время чтения 1 час

Введение

В данной инструкции подробно описан процесс развёртывания собственного сервера обмена сообщениями на базе протокола Matrix. В качестве серверной части будет использоваться Matrix Synapse, а для взаимодействия пользователей с системой - веб-клиент Element.

После выполнения всех шагов вы получите полностью рабочую систему обмена сообщениями, включающую:

  • сервер Matrix (Synapse);
  • веб-клиент Element;
  • защищённый доступ по HTTPS;
  • проксирование через nginx;
  • возможность подключения пользователей к вашему серверу.

Установка

Создание A-записей

Перед началом установки необходимо подготовить DNS-записи для домена. Необходимо создать две A-записи:

A-запись

  • Тип: A
  • Имя: im
  • Значение: 62.173.138.27

A-запись

  • Тип: A
  • Имя: chat
  • Значение: 62.173.138.27

Обе записи должны указывать на IP-адрес сервера, на котором будет выполняться установка.

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

Добавление официального репозитория Matrix

Для установки актуальной версии Matrix Synapse необходимо добавить официальный репозиторий Matrix.

Обновим список пакетов и установим необходимые утилиты:

apt update
apt install -y lsb-release wget apt-transport-https

Добавим ключ репозитория:

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

изображение.png

Теперь добавим репозиторий в систему:

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

Установка Synapse

Обновим список пакетов и установим сервер Matrix:

apt update
apt install -y matrix-synapse-py3

Во время установки мастер настройки попросит указать:

Домен сервера Matrix

im.tex-lab.ru

изображение.png

Также будет предложено отправлять анонимную статистику использования. Этот пункт не влияет на работу сервера и может быть принят или отклонён.

Изменение конфигурации

После установки необходимо проверить конфигурацию сервера.

Откроем файл:

nano /etc/matrix-synapse/homeserver.yaml

Проверим следующие параметры:

server_name: "im.tex-lab.ru"
public_baseurl: "https://im.tex-lab.ru/"

изображение.png

Параметр server_name задаёт имя сервера Matrix.
Параметр public_baseurl определяет внешний адрес сервера, который будет использоваться клиентами.

Создание пользователя администратора

Перед созданием администратора необходимо добавить секрет регистрации.

Сначала сгенерируем случайную строку:

openssl rand -hex 32

Пример результата:

5f6c20f70276512ef3e4a7cd4fffc18e4488c84f979314c0b887ff3663c09719

Теперь добавим этот секрет в конфигурацию сервера.

Откроем файл:

nano /etc/matrix-synapse/homeserver.yaml

В конец файла добавим строку:

registration_shared_secret: "ВАШ_СЕКРЕТ"

изображение.png

После изменения конфигурации перезапустим сервер:

systemctl restart matrix-synapse

Создание администратора

Теперь можно создать пользователя администратора.

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Во время выполнения команды будет предложено указать:

  • username - имя пользователя
  • пароль - пароль
  • admin (yes/no) - является ли пользователь администратором

Чтобы пользователь получил права администратора, необходимо указать:

yes

изображение.png

Установка nginx

Для публикации сервера в интернете используется веб-сервер nginx.

Он выполняет несколько задач:

  • проксирует запросы к Matrix Synapse
  • обеспечивает работу HTTPS
  • принимает входящие соединения пользователей

Установка:

apt install -y nginx

Создание конфигурации nginx для Matrix

Создадим конфигурационный файл:

nano /etc/nginx/sites-available/matrix

Добавим следующий конфиг:

server {
    listen 80;
    server_name im.tex-lab.ru;

    location /.well-known/matrix/server {
        return 200 '{"m.server": "im.tex-lab.ru:443"}';
        add_header Content-Type application/json;
    }

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

изображение.png

Активируем конфигурацию:

ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/

Проверим конфигурацию:

nginx -t

Если ошибок нет, перезапустим nginx:

systemctl restart nginx

Подключение SSL от Let's Encrypt

Для работы HTTPS необходимо выпустить SSL-сертификат.

Установим Certbot:

apt install -y certbot python3-certbot-nginx

Выпустим сертификат:

certbot --nginx -d m.tex-lab.ru

изображение.png

Открытие портов

Для корректной работы сети Matrix необходимо открыть порт:

TCP 8448

Этот порт используется для федерации серверов Matrix.

Проверка работоспособности

Откроем в браузере:

https://im.tex-lab.ru/

Если всё настроено правильно, откроется служебная страница сервера Matrix.

Установка Element

Element - это веб-клиент для работы с Matrix.

Создадим директорию для установки:

mkdir -p /var/www/element

Перейдём в неё:

cd /var/www/element

Скачаем последний релиз Element.

Мы будем устанавливать версию v1.12.13-rc.0, однако на момент установки может быть доступна более новая версия.

wget https://github.com/vector-im/element-web/releases/latest/download/element-web.tar.gz

Разархивируем:

tar -xzf element-web.tar.gz --strip-components=1

Создание конфигурации Element

Создадим файл:

nano /var/www/element/config.json

Заполним его:

{
  "default_server_config": {
    "m.homeserver": {
      "base_url": "https://im.tex-lab.ru",
      "server_name": "im.tex-lab.ru"
    }
  },
  "brand": "TexLab"
}

Конфигурация nginx для Element

Создадим второй конфигурационный файл nginx:

nano /etc/nginx/sites-available/element

Добавим:

server {
    listen 80;
    server_name chat.tex-lab.ru;

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

    location / {
        try_files $uri $uri/ =404;
    }
}

Активируем конфигурацию:

ln -s /etc/nginx/sites-available/element /etc/nginx/sites-enabled/

Проверим конфигурацию:

nginx -t

Возможная ошибка nginx

Иногда во время проверки может появиться ошибка:

could not build server_names_hash, you should increase server_names_hash_bucket_size: 32 nginx: configuration file /etc/nginx/nginx.conf test faile

В этом случае необходимо изменить основной конфиг nginx.

Откроем файл:

nano /etc/nginx/nginx.conf

В блок http добавим параметр:

server_names_hash_bucket_size 64;

После этого перезагрузим nginx:

systemctl reload nginx

Выпуск SSL для Element

Теперь выпустим сертификат для веб-клиента:

certbot --nginx -d chat.tex-lab.ru

Готово. После выполнения всех шагов система полностью готова к работе.

Теперь у вас есть:

Начало работы

СерверПосле завершения установки и настройки сервера Matrix -Synapse https://im.tex-lab.ruи веб-клиента Element необходимо убедиться, что система функционирует корректно и готова к использованию.

Проверка доступа к веб-клиенту

Откройте в браузере адрес веб-клиента:

изображение.png

Веб-клиент Element - https://chat.tex-lab.ru

изображение.png

Если настройка выполнена правильно, откроется страница входа Element.

Для авторизации используйте ранее созданную учётную запись администратора.

При первом входе Element предложит:

  1. войти в существующий аккаунт
  2. зарегистрировать новый аккаунт
  3. подключиться к другому серверу Matrix

В нашем случае необходимо выбрать вход и указать:

  • имя пользователя
  • пароль
  • сервер: im.tex-lab.ru
Создание пользователей

Теперь можносервер открытьготов для создания новых пользователей. Создание пользователей выполняется аналогично созданию администратора, с помощью команды:

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Во время выполнения команды будет предложено указать:

  • username - имя пользователя
  • пароль - пароль
  • admin (yes/no) - является ли пользователь администратором

Для обычных пользователей следует выбрать:

no

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

Общение и начатьсоздание пользоватьсякомнат
собственным

После входа пользователи могут:

  • создавать прямые чаты (аналог личных сообщений)
  • создавать комнаты для группового общения
  • приглашать других пользователей на сервере
  • приглашать пользователей с других Matrix-серверов

Matrix поддерживает так называемую федерацию, поэтому при необходимости можно общаться даже с пользователями других серверов сети Matrix.

Доступ через приложения

Пользоваться сервером Matrix можно не только через веб-интерфейс, но и через официальные приложения Element. Доступны клиенты для различных платформ:

Веб-клиент

Использование через браузер: https://chat.tex-lab.ru

Android

Мобильное приложение для Android:

https://play.google.com/store/apps/details?id=im.vector.app

iOS

Приложение для iPhone и iPad:

https://apps.apple.com/app/element-messenger/id1083446067

Desktop (Windows / Linux / macOS)

Настольные версии можно скачать с официального сайта:

https://element.io/download

Подключение к вашему серверу

При входе в приложении необходимо выбрать Custom server и указать адрес вашего сервера:

im.tex-lab.ru

Заключение

После выполнения всех шагов вы получили полностью функционирующий сервер обмена сообщениями.сообщениями на базе Matrix.

Система позволяет:

  1. создавать пользователей
  2. управлять правами доступа
  3. организовывать личные и групповые чаты
  4. использовать веб-клиент и мобильные приложения
  5. разворачивать собственную независимую инфраструктуру обмена сообщениями

Таким образом, развернутый сервер Matrix может использоваться как полноценная альтернатива популярным мессенджерам для корпоративного или личного общения.