(В статье описывается простой и безопасный способ поднятия собственного Matrix Synapse сервера с компонентами web интерфейса пользователя и видеосвязи на основе opensource скрипта. Статья состоит из 2-х частей, теоретической и практической. Если вы сразу понимаете о чем речь, чтобы сэкономить время можете сразу перейти к практической части.)

В последние годы российский сегмент интернета столкнулся с тревожной ситуацией. То, что раньше казалось надежным — стабильная работа Telegram, WhatsApp и других глобальных площадок — теперь всё чаще сопровождается сбоями, замедлениями или прямой блокировкой. Мы привыкли доверять свою переписку корпорациям, но в условиях нестабильных магистральных каналов и работы систем фильтрации трафика (DPI), централизованные решения становятся «узким местом». Когда сервер мессенджера находится за тысячи километров, а доступ к нему зависит от политической конъюнктуры, вы теряете контроль над своей связью.

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

Собственное решение (Self-hosting) перестает быть уделом гиков и становится вопросом выживания инфраструктуры. Имея сервер на подконтрольном железе или VPS в доверенном дата-центре, вы гарантируете себе канал связи, который не зависит от того, «прописали» ли очередной IP-адрес в списки блокировок или нет. Это и есть настоящий цифровой суверенитет — когда ваша инфраструктура принадлежит вам, а не арендуется у корпорации на птичьих правах.

К сожалению, многие до сих пор считают, что свой сервер — это сложно, дорого и неудобно. Но современные открытые протоколы и средства автоматизации (Docker) позволяют развернуть полноценную замену Slack или Telegram за считанные минуты. Хотел бы поговорить о Matrix — протоколе, который меняет правила игры в мире коммуникаций.

Зачем плодить сущности, если есть «проверенные» решения? Ответ прост: Matrix — это не просто очередной мессенджер, это открытый стандарт для децентрализованного общения. Конечно, популярность такого решения не делает его полноценной заменой WhatsApp или "Телеги", но оно интересно своей независимостью. В отличие от того же Telegram, где вы привязаны к серверам Павла Дурова, Matrix позволяет любому желающему запустить свой узел. И, что самое важное, пользователи разных серверов могут беспрепятственно общаться друг с другом благодаря механизму федерации.

Особенно это актуально для закрытых сообществ и корпоративных пользователей. Если ваша рабочая группа годами координировалась через WhatsApp или Telegram, внезапные перебои в их работе — это не просто неудобство, а прямой убыток. Matrix идеально подходит для создания защищенного контура компании, где важна не миллионная аудитория мессенджера по всему миру, а гарантированная связь между конкретными сотрудниками.

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

Почему Matrix Synapse — это правильный выбор?

Matrix Synapse (эталонная реализация сервера) предлагает уровень безопасности, который многим коммерческим продуктам только снится. Сквозное шифрование (E2EE) на базе протоколов Olm и Megolm обеспечивает приватность не только один на один, но и в групповых чатах. При этом ключи шифрования хранятся только на ваших устройствах, а не на сервере. Даже если кто-то получит доступ к базе данных вашего Synapse, он увидит там лишь нечитаемый шум.

Федерация — киллер-фича протокола. Это работает как электронная почта: вы можете иметь адрес на matrix.my-company.ru и спокойно писать пользователю на matrix.org. Это создает глобальную сеть без единой точки отказа и единого цензора. Если один сервер или целый сегмент сети заблокируют, остальная сеть продолжит жить. Для бизнеса это означает возможность строить защищенные каналы связи с партнерами, сохраняя данные внутри своего контура сети.

Matrix крайне гибок в плане интеграций. С помощью «мостов» (bridges) вы можете объединить в одном клиенте чаты из Telegram, WhatsApp, Discord и даже Signal. Это решает проблему «зоопарка приложений»: вы используете один безопасный клиент (например, Element), но остаетесь на связи со всеми остальными.

Отдельного упоминания стоит работа с медиа. Современные клиенты Matrix поддерживают качественные аудио- и видеозвонки. В последних версиях, благодаря интеграции с LiveKit, групповые созвоны в Matrix по качеству и удобству не уступают Zoom или Google Meet, но при этом трафик идет через ваш сервер, что критично для конфиденциальных переговоров.

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

Практическая часть: Развертывание через Synapse Server Auto

Для тех, кто не хочет вручную копаться в конфигах, существует проект Synapse Server Auto. OpenSourse версия его лежит по адресу https://github.com/AlexVDem/synapse-server-auto Это скрипт для автоматического развертывания полнофункционального сервера Matrix со всеми необходимыми «обвесами».
Скрипт находится на стадии тестирования, был протестирован на нескольких Linux серверах, и показал свою работоспособность. Ну, по крайней мере вы ничем не рискуете, проект работает в Docker и изолирован от основной системы. С помощью скрипта у меня занимает примерно 15 минут чтобы поднять новый сервер "с нуля", для тех кто знаком с проблемой запуска и отладки сервера Matrix, тот знает, что без автоматизации это может стать сущим кошмаром, если делать все руками.
При этом, крайне рекомендуется прочитать README файл по указанной ссылке, в нем есть пара моментов, которые следует учесть при настройке.

Что входит в стек:

  • Synapse: Сердце системы.

  • PostgreSQL: Надежная база данных.

  • Redis: кэширующий промежуточный сервер для повышения быстродействия.

  • LiveKit: Для тех самых видеозвонков.

  • Element Web: Веб-интерфейс, который будет доступен прямо из браузера.

  • Nginx: Обратный прокси, который берет на себя HTTPS.

Важное уточнение: реализация поддержки бриджей для Telegram, WhatsApp и Discord в данный момент находится на стадии разработки и в текущей версии скрипта автоматизации пока не представлена.

Подготовка к установке

Рекомендуется устанавливать сервер на чистую операционную систему. Это практически гарантирует отсутствие конфликтов с другими службами и значительно упрощает процесс первоначальной настройки. Но, если вы имели уже практику настройки сервера Linux, то в принципе ничего сложного и в том, чтобы поднять все на работающем сервере, важно избежать конфликта портов, которые слушают те или иные службы.

Вам понадобится сервер на Linux (Ubuntu/Debian) и доменное имя, направленное на IP сервера. Обязательное условие — наличие SSL-сертификатов (Let's Encrypt). Скрипт ожидает найти их в /etc/letsencrypt/live/ВАШ_ДОМЕН/. Если их нет, certbot в помощь.

Перед запуском важно убедиться, что порты 80 и 443 свободны. Также для видеозвонков критически важен диапазон UDP 50100-50200 — именно через него идет медиа-трафик. Не забудьте открыть их в Firewall вашего провайдера или в ufw (и не забудьте выполнить sudo ufw reload для применения настроек).

Процесс установки

  1. Клонируем репозиторий и переходим в папку.

  2. Редактируем файл .env: указываем свой домен и настраиваем лимиты (например, MAX_UPLOAD_SIZE=10M).

  3. Делаем скрипт исполняемым: chmod +x setup.sh.

  4. Запускаем: ./setup.sh. Важный нюанс: если скрипт запускается без sudo, он может выдать сообщение, что сертификаты не найдены. Если вы уверены, что они на месте, можете продолжать.

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

После работы скрипта запускаем контейнеры командой docker compose up -d (в современных версиях Docker Compose пишется без дефиса). Всё, ваш сервер в строю.

Трудности и их решение

Самая частая проблема — регистрация пользователя. По умолчанию регистрация в Matrix часто закрыта для защиты от спама. Первого администратора нужно создать через CLI:
docker exec -it synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
(Примечание: название контейнера может отличаться, проверьте через docker ps).

Вторая проблема — видеозвонки. Если вы видите черный экран или звонок обрывается, значит, не проброшены UDP порты. Matrix использует WebRTC, которому крайне важен прямой доступ к портам для передачи потока.

Третий важный момент — работа федерации. Чтобы вы могли писать пользователям на другие сервера, федерация должна быть исправна:

  1. Проверить свой домен можно на официальном ресурсе: https://federationtester.matrix.org. Результат Success говорит о том, что всё настроено верно.

  2. Еще один способ — попробовать найти в поиске контактов пользователя @alexvdem:matrix.org. Если сервер предлагает его добавить, значит, связь с внешним миром (как минимум с основным официальным сервером Matrix) установлена.

  3. Имейте в виду: федерация может заработать не сразу. Серверу требуется некоторое время, чтобы "влиться" в общую сеть и начать видеть другие узлы.

Заключение: Почему это важно для каждого?

Собственный сервер — это не паранойя, а гигиена в современном цифровом мире. Мы переходим от эпохи «бесплатных» сервисов, где товаром являются наши данные и внимание, к эпохе осознанного владения инфраструктурой. Децентрализованные сети вроде Matrix возвращают право на приватную переписку, которая не зависит от настроения регуляторов или политики техгигантов.

Имея свой узел в глобальной сети, вы становитесь частью устойчивой системы. Даже если завтра отключат внешние магистрали, ваши сотрудники или семья смогут общаться внутри локальной сети или через внутренние каналы. Это универсальное средство связи, которое масштабируется от домашнего чата до корпоративного мессенджера на тысячи человек. Ну и наличие такого узла на вашей VPS или на вашем домашнем сервере немного улучшает общую картину "цифровой независимости", которой в последнее время так стараются лишить пользователей по всему миру. И наличие простых и понятных инструментов установки, таких как рассматриваемый, повышает популярность Matrix. Кто знает, может быть за этим будущее независимых и децентрализованных сетей?

Комментарии (44)


  1. andreymal
    23.02.2026 15:23

    Особенно это актуально для закрытых сообществ и корпоративных пользователей.

    Нет

    пользователи разных серверов могут беспрепятственно общаться друг с другом

    Для корпоративных пользователей это не только не нужно, но и является риском безопасности, поэтому админ отключит федерацию примерно сразу. А без федерации зачем Matrix, а не какой-нибудь условный Nextcloud Talk или Mattermost или что там ещё есть?

    гарантированная связь между конкретными сотрудниками

    Про трудности с push-уведомлениями на андроидах и тем более айфонах такично умолчим

    Даже если кто-то получит доступ к базе данных вашего Synapse, он увидит там лишь нечитаемый шум.

    Корпорация категорически не заинтересована прятать от себя свою собственную переписку, поэтому админ отключит E2EE примерно сразу, а дальше по аналогии с отключенной федерацией

    без ... единого цензора

    Корпорация, устанавливающая себе свой собственный мессенджер, хочет быть тем самым единым цензором

    Вам понадобится сервер на Linux

    Про системные требования к этому серверу и про производительность Synapse, который написан на Python, тактично умолчим

    Про проблемы с юзабилити всех имеющихся Matrix-клиентов тоже тактично умолчим

    Поделитесь мнением

    Варианты ответов в опросе тактично не вспоминают про джаббер


    1. andreymal
      23.02.2026 15:23

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


    1. AlexWllI Автор
      23.02.2026 15:23

      Федерацию не обязательно отключать совсем, её можно ограничить рядом доверенных серверов чтобы иметь резервные сервера, и не пускать в сеть посторонних.


      1. andreymal
        23.02.2026 15:23

        В контексте корпорации это выглядит менее практично чем просто сделать репликацию БД (ну, не то чтобы прям «просто», но админы корпорации наверняка в этом разбираются)


        1. AlexWllI Автор
          23.02.2026 15:23

          Под "резервным" имелось ввиду не резервная копия базы, это не обсуждается, и решается на уровне сервера, а резервный канал связи, если например основной откажет.


          1. andreymal
            23.02.2026 15:23

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


      1. werter_l
        23.02.2026 15:23

        Верно, полностью федерацию откл не нужно.


    1. ThingCrimson
      23.02.2026 15:23

      Вот да, я пытался когда-то (лет 10 назад) организовать внутрикорпоративную коммуникацию на XMPP (серверная часть на OpenFire, потом на eJabberd); даже до видеозвонков через Jitsi доходило. Но всё засохло само собой по мере развития коммерческих мессенджеров — пользователям оказалось важнее иметь приятный UI/UX клиентских приложений (увы, бесплатные клиенты типа ChatSecure или Monal сильно проигрывают «фирменным») и работающие пуш-уведомления (иначе приходилось скажем в Viber кричать собеседнику «открой ChatSecure, да?!»)

      К сожалению, красота протокола / федерации не перебивает Element на електроне или вот Synapse на питоне. Ну и работающие пуши на мобилках — критичное требование для сферического пользователя в вакууме (для специальных пользователей, с во-о-о-от такой компетентностью, дисциплиной, организацией — можно что угодно работающее, в том числе и Matrix / XMPP).


      1. AlexWllI Автор
        23.02.2026 15:23

        С пушами была проблема года 2-3 назад. Сейчас, по крайней мере на Android, Web и на Linux Desktop приложении я их не испытываю. Хотя, тут как посмотреть, дело в том, что Element использует Firebase для пушей, а они не работают через VPN. Решается указанием на клиенте VPN split-tunneling для Google сервисов, после этого все начинает работать как надо. Ну или пробросов портов мимо VPN (гуглится через "Firebase via VPN")/. Что характерно, если VPN работает скажем на роутере, то и сплитовать не надо, все и так работает, не знаю почему. Но если поднимать сервер внутри РФ, то его вообще из VPN можно вывести, т.е. всеравно все шифрутеся через HTTPS. В общем, пока задачу свою решение выполняет на 100%.


      1. ash_lm
        23.02.2026 15:23

        Ну там вроде как (в этом году не смотрел) Snikket своё приложение обновил.


    1. svirpen
      23.02.2026 15:23

      Про трудности с push-уведомлениями на андроидах и тем более айфонах такично умолчим


      Четыре года использую, переписываюсь в группах по интересам и с родителями - особых проблем не замечал. На общественном сервере. Правда, Google Play и другие пуш сервисы не использовал - только собственное встроенное отслеживание. Батарею не сильно разряжает - если обычно на 5% за ночь заряд падает, то с Элементом (матрикс-клиент) - 7-8 % процентов, если не использовать пуш сервер.


      1. andreymal
        23.02.2026 15:23

        У меня пуш-уведомления категорически не работали, пока я не поставил ntfy

        Но это на андроиде, тут можно найти различные обходные пути. На айфоне обходных путей принципиально не существует, регистрируйтесь в Apple Push Notification Service и надейтесь что его никто не заблокирует


  1. aik
    23.02.2026 15:23

    А ещё вспоминаем про белые списки, которые успешно отключат любые мессенджеры, кроме одобренных РКН.


    1. garregusev
      23.02.2026 15:23

      ага, и туда же бан целыми протоколами, типа того же vless

      мне кажется, что так же и звонки по безвпнному udp вполне могут в какой-то момент рубануть


    1. svirpen
      23.02.2026 15:23

      Сейчас из общественных серверов только matrix.org наглухо забанен. Есть остальные, которые комфортно использовать, исключая звонки (они вроде везде на общественных серверах забанены). Но и со звонками проблема решается почему-то VPN'ом на одной стороне, на второй стороне не нужно (сам не понимаю как). Удобно с родственниками переписываться, которые в IT не очень. Ну это только личный опыт, на 4 провайдерах проверял в разных регионах - на одном проводном только без VPN вообще не работает, на 3 других (включая мобильный) работает так, как выше описал.
      А со своим сервером может вообще без проблем, не в курсе.


      1. aik
        23.02.2026 15:23

        Когда инет по белым спискам - вы до своего сервера не достучитесь.


        1. svirpen
          23.02.2026 15:23

          да, я для обычного режима обрисовал ситуацию выше


  1. Markscheider
    23.02.2026 15:23

    Имея сервер на подконтрольном железе или VPS в доверенном дата-центре, вы гарантируете себе канал связи, который не зависит от того, «прописали» ли очередной IP-адрес в списки блокировок или нет

    А если заблочат IP/подсеть дата-центра?


  1. Esrom
    23.02.2026 15:23

    А разве последние версии synapse не требуют mas сервис для авторизации. В последних версиях регистрация пользователей в synapse невозможна


    1. AlexWllI Автор
      23.02.2026 15:23

      Первый раз про это слышу. Synapse 1.147.1 - регистрация работает через команду на сервере. Но я специально не настраивал другие варианты в целях безопасности. Можно прикрутить самостоятельную регистрацию пользователей через выдачу токена админом, в принципе, более удобное и в общем тоже безопасное решение, т.к. добавление новых пользователей всеравно остается под контролем админов, на досуге займусь.


      1. Kirston
        23.02.2026 15:23

        Поднял в прошлую пятницу. Жду с нетерпением ваших апдейтов и если сделаете бридж в телегу то с удовольствием присоединюсь


        1. Esrom
          23.02.2026 15:23

          есть очень хорошее такое решение - https://github.com/wlphi/ess-docker-compose

          Но у меня не удалось настроить регистрацию новых пользователей


          1. werter_l
            23.02.2026 15:23

            Попробуйте synapse admin отдельно к нему прикрутить, если это возможно.


      1. werter_l
        23.02.2026 15:23

        del


  1. vyacheslavteplyakov
    23.02.2026 15:23

    Тестировали в эти выходные. Было интересно найти что-то шифропанковское децентрализованное с поддержкой видео звонков без VPN. Matrix не справляется, подмосковный провайдер чудесно блокирует трафик, уже. Так что толку от него в таком сценарии примерно ноль. Если в цепочке у вас есть провайдер, плевать на сколько там у вас "свой" и "доверенный" сервер, вы ничего не решаете.


    1. Nemoumbra
      23.02.2026 15:23

      В статье всё правильно сказано:

      Matrix использует WebRTC

      Так что, я уверен, Matrix сам со своей задачей справляется вполне успешно (т.е. signaling он обеспечивает через зашифрованные каналы). Дело в WebRTC.

      Зато обычный трафик - чистый HTTPS с перекладыванием JSONов, тут не подкопаешься без белых списков.


  1. kn00wlege
    23.02.2026 15:23

    Подняли свой сервер в РБ. Первые пару дней все работало хорошо, потом у пользователей из РФ началась жуткая деградация голоса в звонках, при том что внутри РБ все как и прежде работает на ура....


  1. timerbulatov
    23.02.2026 15:23

    Нисколько не умаляя качества статьи про технические подробности равертывания-запуска Matrix на своём сервере, как будто бы это только часть задачи. Ибо чисто технически ничего не мешает купить домен, сертификаты(или сделать их через LE), заказать VPS и поставить туда Matrix в том или ином составе.

    А вот дальше есть ли какие то юридические или документальные телодвижения, которые необходимо выполнить, чтобы не стать распространителем спама\порно\всякого незаконного, с точки зрения государства, коль скоро доступ предоставляется неограниченному кругу лиц? Даже если авторизация по отдельно выдаваемым учёткам, строго родственникам и надёжным друзьям-знакомым, и отключена регистрация.

    Если был у кого подобный опыт, поделитесь пожалуйста подробностями.


  1. Gorthauer87
    23.02.2026 15:23

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


  1. Yamuzakopal
    23.02.2026 15:23

    Дааа... С уведомлениями я голову вечерок поломал. Через свой сервак push долетает шустро. Официальный домен на который всё летит у меня в регионе тормозится.


  1. WantedPotato
    23.02.2026 15:23

    Matrix неудобен, тяжелый, жрет ресурсы, в том числе на клиентах (так как все нормальные написаны на электроне).


  1. werter_l
    23.02.2026 15:23

    Развернул на 500+ человек

    1 push работает точно, если на моб. платформах использовать версию element classic, а не element X

    2 также push работает через селфхостед ntfy-сервер, если надо c element X

    3 в статье не упомянут самый популярный вариант авто-развертывания https://github.com/spantaleev/matrix-docker-ansible-deploy

    Главная проблема, с к-ой столкнулся, моб- и десктоп-клиент для работы используют протокол quic (udp\443) и развертывание в связке с nginx proxy manager (npm) у меня не заработало - npm пока не умеет проксировать quic.

    При этом веб-версия прекрасно работает в связке с npm - и голос и видео.

    Пришлось заиметь 2-й канал чисто для матрикс и на нем вынести lxc с матрикс-ом (у меня оно в lxc на pve живет) в dmz

    P.s. Еще из интересного попался Snikket https://snikket.org/features

    Умеет голос, видео, паблик и приват-группы, в кач-ве моб. клиента использует conversations https://f-droid.org/packages/eu.siacs.conversations

    What is the difference between the version on Google Play and the version on F-Droid

    https://codeberg.org/iNPUTmice/Conversations#what-is-the-difference-between-the-version-on-google-play-and-the-version-on-f-droid


    1. Mengar
      23.02.2026 15:23

      Ngm+ умеет quic


      1. werter_l
        23.02.2026 15:23

        оно и zoraxy и pangolin умеет в quic

        вопрос в том , как схему с quic скормить матриксу при этом (

        в связке реверс-прокси с quic + матрикс у меня не получилось

        при этом напрямую, когда матрикс сам серт-ы получает, все ок


  1. domix32
    23.02.2026 15:23

    Спешу огорчить, но даже установка матрикса не решает проблему блокировок - ваш трафик преспокойнейше попадает в немилость DPI и может иметь проблемы со стабильностью передачи. Тем более, что оно UDP. Голос относительно неплохо работает, а вот видеофид уже может быть проблемой. Аналогичная история о связности - часть независимых матричных узлов может оказаться в бане просто за кампанию.

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

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


    1. werter_l
      23.02.2026 15:23

      1 внутри страны у меня и голос и видео ходят без проблем

      2 выше element classic рекомендовал в кач-ве моб клиента - пробуйте


  1. Peterm123454
    23.02.2026 15:23

    При этом ключи шифрования хранятся только на ваших устройствах, а не на сервере.

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