Установка 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
Теперь добавим репозиторий в систему:
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
Также будет предложено отправлять анонимную статистику использования. Этот пункт не влияет на работу сервера и может быть принят или отклонён.
Изменение конфигурации
После установки необходимо проверить конфигурацию сервера.
Откроем файл:
nano /etc/matrix-synapse/homeserver.yaml
Проверим следующие параметры:
server_name: "im.tex-lab.ru"
public_baseurl: "https://im.tex-lab.ru/"
Параметр server_name задаёт имя сервера Matrix.
Параметр public_baseurl определяет внешний адрес сервера, который будет использоваться клиентами.
Создание пользователя администратора
Перед созданием администратора необходимо добавить секрет регистрации.
Сначала сгенерируем случайную строку:
openssl rand -hex 32
Пример результата:
5f6c20f70276512ef3e4a7cd4fffc18e4488c84f979314c0b887ff3663c09719
Теперь добавим этот секрет в конфигурацию сервера.
Откроем файл:
nano /etc/matrix-synapse/homeserver.yaml
В конец файла добавим строку:
registration_shared_secret: "ВАШ_СЕКРЕТ"
После изменения конфигурации перезапустим сервер:
systemctl restart matrix-synapse
Создание администратора
Теперь можно создать пользователя администратора.
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
Во время выполнения команды будет предложено указать:
- username - имя пользователя
- пароль - пароль
- admin (yes/no) - является ли пользователь администратором
Чтобы пользователь получил права администратора, необходимо указать:
yes
Установка 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;
}
}
Активируем конфигурацию:
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
Открытие портов
Для корректной работы сети 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 и веб-клиента Element необходимо убедиться, что система функционирует корректно и готова к использованию.
Проверка доступа к веб-клиенту
Откройте в браузере адрес веб-клиента:
Если настройка выполнена правильно, откроется страница входа Element.
Для авторизации используйте ранее созданную учётную запись администратора.
При первом входе Element предложит:
- войти в существующий аккаунт
- зарегистрировать новый аккаунт
- подключиться к другому серверу Matrix
В нашем случае необходимо выбрать вход и указать:
- имя пользователя
- пароль
- сервер: im.tex-lab.ru
Создание пользователей
Теперь сервер готов для создания новых пользователей. Создание пользователей выполняется аналогично созданию администратора, с помощью команды:
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
Во время выполнения команды будет предложено указать:
- username - имя пользователя
- пароль - пароль
- admin (yes/no) - является ли пользователь администратором
Для обычных пользователей следует выбрать:
no
После создания учётной записи пользователь сможет войти в систему через веб-клиент 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)
Настольные версии можно скачать с официального сайта:
Подключение к вашему серверу
При входе в приложении необходимо выбрать Custom server и указать адрес вашего сервера:
im.tex-lab.ru
Заключение
После выполнения всех шагов вы получили полностью функционирующий сервер обмена сообщениями на базе Matrix.
Система позволяет:
- создавать пользователей
- управлять правами доступа
- организовывать личные и групповые чаты
- использовать веб-клиент и мобильные приложения
- разворачивать собственную независимую инфраструктуру обмена сообщениями
Таким образом, развернутый сервер Matrix может использоваться как полноценная альтернатива популярным мессенджерам для корпоративного или личного общения.







