путешествия, учеба, стиль жизни

Молдова »

Как развернуть свой безопасный мессенджер Matrix + Element

  16.03.2026 01:45, от , Рубрики: IT

Запуск собственного мессенджера: Matrix + Element + NPM 🔥

Сегодня вопрос приватности и контроля над своими данными актуален как никогда.

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

Поэтому я решил написать свой гайд по схеме «3-в-1».

В этом руководстве мы поднимем полноценный стек:

  1. Matrix (Synapse) - мозг и серверная часть мессенджера.

  2. Element - современный и удобный веб-клиент.

  3. Nginx Proxy Manager - для автоматизации SSL-сертификатов и удобного управления трафиком.

Важно: В этой инструкции мы сфокусируемся на базовом развертывании. Функции звонков (VoIP) требуют дополнительных ресурсов и настройки TURN-сервера, поэтому здесь мы их опустим, чтобы сохранить инструкцию максимально легкой и быстрой.

Почему именно Matrix?

  • Децентрализация. Вы запускаете свой собственный «инстанс». Вся переписка внутри вашего сервера остается на ваших ресурсах - вы полностью владеете инфраструктурой.

  • Сквозное шифрование (E2EE). Никаких компромиссов. Благодаря протоколу Olm/Megolm даже администратор сервера (вы) не сможет прочитать содержимое зашифрованных чатов.

  • Федерация. Это «электронная почта в мире мессенджеров». Вы не заперты внутри своего сервера и можете свободно общаться с пользователями других инстансов Matrix, вступать в глобальные чаты и комнаты.

 

Предварительная подготовка

Нужно арендовать VPS сервер в надежном месте, с минимум 2Гб оперативной памяти

В моем примере я поднимаю на AWS, вы можете выбрать любой доступный вариант

DNS запись должна указывать на ваш IP адрес сервера, т.е:

55.123.45.67 - yourdomain.com

Так же должны быть обязательно открыты порты: 80, 81, 443, 22, 8448 

В примере я разворачиваю на Debian 12

 

Установка и настройка

Подключаемся к созданному серверу по SSH и переходим в режим root

sudo su

Обновляем пакеты

apt update && apt upgrade -y

Ставим GIT, Cron, Curl если не установлены

apt install git cron curl -y

Клонируем мой репозиторий

git clone https://github.com/nikita-butakov/matrix_element.git

Переходим в новую папку проекта

cd matrix_element

Сначала нам нужно отредактировать файл config.json

nano config.json

В нем прописываем имя своего сервера вместо yourdomain.com, в моем случае это jitsidevops.website

После замены нужно выйти из файла, в nano это делается сочетанием CTRL + X

И сохранить файл, нажав Y и ENTER

Можно проверить что в файле нужная информация командой 

cat config.json

Выдаем права на запуск скрипта для копирования сертификатов

chmod +x certs.sh

Проверить права на скрипт можно командой

ls -l

Должна появиться буква x

После выдачи права на запуск, нужно добавить периодический запуск этого скрипта в Cron

Проверяем путь нашей папки командой

pwd

У меня это /home/admin/matrix_element, значит команда будет

0 3 * * * /home/admin/matrix_element/certs.sh

Если у вас путь другой, нужно заменить на свой

Заходим в редактор Cron

crontab -e

При вопросе какой редактор для Cron использовать, можно выбрать nano, нажав цифру 1 и кнопку Enter

Добавляем в самый низ команду

0 3 * * * /home/admin/matrix_element/certs.sh

И так же выходим из файла CTRL + X, потом Y и Enter

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

crontab -l

Теперь нужно установить Docker, переходим по ссылке https://docs.docker.com/engine/install/debian/

Находим раздел "Install using the convenience script

И устанавливаем с помощью указанных команд

Проверяем установку командой

docker -v

Запускаем команду по генерации конфига, заменив yourdomain.com на свой

docker run --rm -it \
-e SYNAPSE_SERVER_NAME=yourdomain.com \
-e SYNAPSE_REPORT_STATS=no \
-v $(pwd)/synapse/data:/data \
matrixdotorg/synapse:latest generate

После выполнения команды переходим в папку

cd synapse/data/

И редактируем файл homeserver.yaml

nano homeserver.yaml

Аккуратно удаляем все строчки до database

И вставляем конфиг из ссылки. Так же меняем yourdomain.com на свой

https://github.com/nikita-butakov/matrix_element/blob/main/homeserver_example

Файл после редактирования с моим доменом будет выглядеть так:

https://github.com/nikita-butakov/matrix_element/blob/main/homeserver_example_done

Возвращаемя на две папки выше, в основную

cd ../..

Сначала только запускаем Nginx Proxy Manager, для получения сертификатов

docker compose up npm -d

После запуска контейнера заходим в Nginx Proxy Manager, в моем случае это (подставить свой домен):

http://jitsidevops.website:81/

В первый раз надо зарегистрироваться и задать пароль

После регистрации, на главной странице переходим в Proxy hosts

Нажимаем Add proxy

В домен добавляем имя своего домена, у меня jitsidevops.website

Scheme: http
Forward Hostname / IP: element
Forward Port: 80
Block Common Exploits: ON
Websockets Support: ON

Вкладка Custom locations
Location: /_matrix
Scheme: http
Forward Hostname / IP: synapse
Forward Port: 8008

Location: /_synapse
Scheme: http
Forward Hostname / IP: synapse
Forward Port: 8008

Нажимаем Save и переходим обратно в консоль

Запускаем остальные контейнеры

docker compose up -d

После успешного запуска, возвращаемся в Nginx Proxy Manager и добавляем сертификат, отредактировав сущестующий Proxy Host

Вкладка SSL
Request a new certificate
Force SSL: ON
HTTP/2 Support: ON

И опять нажимаем Save

В итоге в Nginx Proxy Manager статус должен быть Online и обязательно с сертификатом

В консоли запускаем первое копирование сертификатов вручную

./certs.sh

Важно: в случае ошибки скрипта нужно проверить название папки

npm/letsencrypt/live

с сертификатом и поменять его на правильное

Если там будет например npm-2, в скрипте нужно поменять на npm-2. У меня npm-1

Перезапускам все контейнеры


docker compose down

docker compose up -d

Проверяем, что все контейнеры в статусе UP командой

docker ps

Заходим на сайт и проверяем, что он открывается

В моем случае это https://jitsidevops.website (поменять на свой домен)

Так же нужно зайти на сайт https://federationtester.matrix.org/ и проверить работу федерации введя свой домен

Checks должны быть зеленые со статусом Success

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


docker compose exec synapse register_new_matrix_user \
-c /data/homeserver.yaml \
http://localhost:8008 \
-u admin \
-p strongpassword \
-a

Success! - пользователь создался

Возвращаемся на сайт и проверяем вход нажав Sign in и вводим данные созданного пользователя

admin

strongpassword

Пароль потом можно поменять в настройках пользователя

Теперь можно проверить работу федерации - когда вы можете писать людям с других серверов и комнат

Найти какую-нибудь комнату/чат на сайте https://matrixrooms.info/search

Например

#linux:makigas.es

Вставить в поле Search и нажать Join

Если видете другие комнаты, сообщения и тд - супер, значит все работает правильно

Так же можно скачать приложение для смартфона или Windows/Linux/Mac 

https://element.io/en/download

Еще нет отзывов


Идет загрузка формы...

Поиск

  Подписка на RSS

Open-Source CMS
 

This collection ©2026 by Nikita Butakov

Контакты | Помощь | b2evo skins by Asevo | CMS engine