| Молдова » |
Как развернуть свой безопасный мессенджер Matrix + Element
Запуск собственного мессенджера: Matrix + Element + NPM 🔥
Сегодня вопрос приватности и контроля над своими данными актуален как никогда.
Когда я сам искал простую и понятную инструкцию по установке Matrix, то столкнулся либо с перегруженными мануалами, либо с обрывками информации.
Поэтому я решил написать свой гайд по схеме «3-в-1».

В этом руководстве мы поднимем полноценный стек:
-
Matrix (Synapse) - мозг и серверная часть мессенджера.
-
Element - современный и удобный веб-клиент.
-
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: 8008Location: /_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
Еще нет отзывов
Никита
#IT #Explorer #ImmigrantПоиск
Архивы
- Март 2026 (1)
- Февраль 2026 (2)
- Декабрь 2025 (1)
- Ноябрь 2025 (2)
- Сентябрь 2025 (1)
- Больше...
Подписка на RSS
- RSS 2.0: Записи, Комментарии
- Atom: Записи, Комментарии
