Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

После проблем с доступностью Telegram и WhatsApp* многие начали искать альтернативные способы оставаться на связи с семьёй, друзьями и коллегами. Один из вариантов — развернуть собственный мессенджер на VPS-сервере.

Сегодня это уже не история «только для корпораций»: современные open source-решения позволяют за вечер поднять полноценный сервер с чатами, звонками, видеосвязью и веб-клиентом. Одно из самых популярных решений такого типа — Matrix.

В этой статье рассмотрим, как установить Matrix Synapse на виртуальный сервер RUVDS, настроить домен, подключить клиент Element и получить собственный независимый мессенджер.

Что такое Matrix

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

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

Итак, основными компонентами экосистемы Matrix являются, во-первых, серверы, на которых хранятся сообщения, которые управляют пользователями и которые участвуют в федерации. Самый распространённый сервер — Synapse — официальный сервер Matrix, разработанный на Python. Во-вторых, это клиенты, или, другими словами, приложения. Matrix поддерживает множество клиентов: Element — официальный клиент, Element X — его новейшая вариация, FluffyChat, Nheko и др.

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

Федерация работает по принципу обмена событиями. Само по себе сообщение, отправляемое пользователем, не является просто текстом, но представляет собой определённое событие. Оно подписывается при помощи криптографии, после чего распространяется между серверами, участвующими в конкретной комнате. При отправке сообщения сервер передаёт соответствующее событие всем другим серверам, участники которых состоят в этой комнате. Естественно, передача осуществляется по защищённому HTTPS-соединению с использованием цифровых подписей. При этом любой пользователь системы может выбрать публичный сервер, а может настроить собственный, но в итоге все участники остаются частью единой глобальной сети обмена сообщениями.

Что нужно для настройки своего сервера Matrix

Как упоминалось выше, самый распространённый сервер Matrix называется Synapse. Готовый образ Matrix Synapse доступен для заказа в маркетплейсе RUVDS. Данный образ реализован на Debian 13 — современной, надёжной и легковесной Linux-платформе. Для настройки небольшого персонального экземпляра должно хватить двух ядер процессора и 2–4 ГБ оперативной памяти. Поэтому на первом этапе логинимся на сайте, кликаем «Заказать», после чего выбираем местоположение дата-центра, в котором будет находиться наш сервер. Затем указываем необходимые параметры в конфигурации и в строке «Шаблон сервера» вместо «Установить чистую ОС» выбираем Matrix Synapse - Debian 13.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

После этого оплачиваем сервер и через несколько минут наша новая виртуалка готова.

Как настроить свой сервер Matrix Synapse?

На следующем шаге нам потребуется доменное имя, которое будет использоваться сервером для включения шифрованного HTTPS-доступа и дальнейшего обмена данными в системе Matrix. Да, тут важный нюанс: у вас должно быть собственное доменное имя. Получить его можно у одного из регистраторов доменов — например, Reg.ru, Ru-Center или Beget. Настройку же домена можно произвести на сайте RUVDS. Для этого во вкладке «Домены» добавляем свой домен с привязкой к серверу, на котором настраиваем Matrix Synapse. Подробнее о том, как привязать домен к серверу RUVDS, мы писали в отдельной статье.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

После добавления домена обязательно посетите сайт-регистратор, где домен был приобретён, и вместо используемых там DNS-серверов укажите DNS-сервера RUVDS — ns1.ruvds.com и ns2.ruvds.com.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Таким образом мы делегируем свой домен DNS-серверам RUVDS и остальные настройки можно производить уже на сайте RUVDS. Но стоит иметь в виду — обновление DNS-серверов может занять несколько часов. Проверить применение изменений можно запуская в командной строке или терминале команду, которая отправляет пинг на доменное имя:

ping vash-domain.ru

Переходить к настройке сервера Matrix Synapse можно после того, как команда начнёт возвращать IP-адрес вашего сервера.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Кроме того, для нашего домена создаём три CNAME-записи со значениями admin, matrixrtc и web. Для этого на страничке домена переходим по ссылке «Редактировать DNS-записи».

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Здесь поочерёдно добавляем эти записи CNAME: у первой в поле «Имя поддомена» указываем admin, у второй — matrixrtc, у третьей — web.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

По окончании трудоёмких манипуляций с доменными именами подключаемся по SSH к своему серверу. Для подключения потребуются IP-адрес сервера, имя пользователя (root) и пароль.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Чтобы подключиться, откройте командную строку или терминал и введите там команду ssh root@X.X.X.X, в которой укажите IP-адрес вашего сервера вместо X.X.X.X. При первом подключении консоль должна вывести предупреждение о подлинности узла, с которым производится попытка соединения. Здесь нужно согласиться с тем, что мы подключаемся именно к своему серверу.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Подключившись, запускаем команду, в которой не забудьте заменить vash-domain.ru на имя вашего домена:

./deploy.sh vash-domain.ru

Команда активирует настройку сервера, и спустя какое-то время покажет на экране логин с паролем для подключения к Matrix Synapse и ссылку для доступа к нему через браузер.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

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

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Таким образом, мы попадаем в панель Synapse-Admin — административного центра нашего мессенджера.

В разделе «Пользователи» присутствует единственная учётная запись — это наш администратор. Поэтому для начала создаём нового пользователя. Для этого кликаем «Создать».

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

В открывшейся форме заполняем поля: ID пользователя — это логин в системе, «Отображаемое имя» — то, что будут видеть другие пользователи при общении с ним, и «Пароль». Для завершения процедуры жмём «Сохранить».

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Точно так же создаём других пользователей. И затем, чтобы воспользоваться непосредственно мессенджером, возвращаемся к шагу, где мы запускали команду, которая настраивала сервер Matrix Synapse, и переходим по ссылке, предназначенной для подключения к веб-интерфейсу мессенджера.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

В веб-интерфейсе логинимся при помощи учётных данных одного из созданных пользователей.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

После подключения инициируем, например, отправку сообщения другому абоненту.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Чтобы найти другого абонента, указываем его данные в формате @user:domain, где user — ID пользователя, а domain — имя домена.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Ну а потом, можно отправлять сообщения и совершать звонки, в том числе и с использованием видео.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

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

То же касается и мобильных устройств, на которых можно общаться при помощи приложения Element X.

Telegram и WhatsApp* недоступны? Поднимаем собственный мессенджер на Matrix

Заключение

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

* WhatsApp принадлежит корпорации Meta, которая признана экстремистской на территории России.

💻 Недорогие VPS в российских и зарубежных дата-центрах заказывайте на сайте RUVDS. Первые 3 дня пользуйтесь VPS бесплатно!

4
Начать дискуссию