Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
ПОЧТА И КОММУНИКАЦИИ

Synapse

Свой сервер Matrix: корпоративный чат на собственном домене, со сквозным шифрованием и федерацией с внешними организациями. Element, который его разрабатывает, на странице цен называет бесплатную сборку непригодной для прода - мы развернули ее на тарифе за 500 рублей и проверили, где это правда.

Проверено на версии 1.161.0, 29 сентября 2026 ~11 минут чтения Fatmetal
AGPL-3.0 Python + Rust 4 контейнера 147 МиБ в простое PostgreSQL Федерация проверена

Вердикт

Подходит
  • компании 10-100 человек, которой нужна переписка внутри своего контура
  • тем, кому нужна связь с подрядчиками без общего поставщика: их сервер и ваш общаются напрямую
  • тем, кто не может оплачивать зарубежную подписку на каждого сотрудника
  • организациям, где важно шифрование по умолчанию и свой домен в адресе сотрудника
Не подходит
  • команде из трех человек: сложность не окупится
  • тем, кто не готов завести домен - без него теряется главное свойство продукта
  • тем, кому нужен готовый чат без администратора: тут честнее Mattermost
  • тем, кто ищет самый легкий сервер Matrix - Synapse не из них
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: medium Время запуска: ~21 с после перезапуска Главный риск: имя сервера выбирается один раз и навсегда Прод-готовность: да, с оговорками ниже
Что это

Сервер, а не мессенджер

Synapse - серверная часть Matrix, открытого стандарта обмена сообщениями. Его пишет Element, та же команда, которая придумала сам протокол.

Владелец сервера получает свое пространство имен: сотрудник зовется @ivan:company.ru, как почтовый адрес. Комнаты, треды, файлы, звонки - все живет на вашей машине.

Главное отличие от корпоративных чатов - федерация. Два сервера разных организаций переписываются напрямую: подрядчику не нужен аккаунт в вашей системе, достаточно его собственного сервера Matrix.

i

Важно до заказа: интерфейса в поставке нет. Synapse отдает только API, человеку нужен клиент - Element Web, мобильное приложение или любое другое. Мы ставили сервер и веб-клиент вместе, иначе после установки открывается пустая страница.

Python/TwistedRustPostgreSQLElement WebCaddy
Рабочая комната в Element Web на своем сервере Matrix, переписка на русском
Свой сервер Synapse 1.161.0 с веб-клиентом Element. Интерфейс русский без настройки: клиент берет язык браузера
Главный вопрос

Вендор говорит, что бесплатная сборка не для прода

На странице цен Element бесплатный сервер подписан так: "Community edition homeserver, actively developed by Element, but not for use in production environments".

Рядом продается закрытый Synapse Pro - "next generation homeserver for professional use", который обещает "90%+ resource savings compared to Community Synapse". Цена по запросу, за место в месяц.

Формулировка резкая, но это позиция продавца. В 2023 году Element сменил лицензию с Apache 2.0 на AGPL и в своей же хронологии объяснил, зачем: интеграторы продавали решения на Matrix, построенные Element, ничего ей не платя.

Проверить такое утверждение можно только замером. Мы развернули Community-сборку на CPU2-RAM4-DISK50, подключили федерацию с внешним миром и посмотрели на цифры.

Что продаетсяЦенаЧто это значит
Synapse Communityбесплатно, AGPL-3.0то, что ставим мы. Поддержки от вендора нет
Коммерческая лицензияпо запросутот же код для тех, кому AGPL не подходит юридически
Synapse Proза место в месяцзакрытый форк с обещанной экономией ресурсов
Сравнение

Чем отличается от Slack и Mattermost

Slack Pro стоит 6,75 евро за пользователя в месяц при годовой оплате, Business+ - 15 евро. Self-hosted альтернативы бесплатны, но умеют разное.

ПараметрSynapseMattermostSlack
Данные у васдаданет
Федерация с чужими серверамиданетнет
Шифрование по умолчаниюв приватных комнатахнет в базовой версиинет
Свой домен в адресе сотрудникаданетнет
Выбор клиентадесяток приложенийтолько своетолько свое
Память в простое, наш замер147 МиБоколо 0,8 ГБ-
Сложность установкисредняянизкаянет установки

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

Стенд

Минимальная конфигурация

Документация проекта заявляет "не менее 1 ГБ свободной памяти". Наш замер показал, что федеративному серверу этого мало.

Тариф стендаCPU2-RAM4-DISK50 (2 vCPU, 4 ГБ, 50 ГБ)
Операционная системаUbuntu 24.04.4 LTS
Версия продуктаSynapse 1.161.0, клиент Element Web 1.12.29
База данныхPostgreSQL 15, SQLite только для тестов
Контейнеров4: сервер, база, веб-клиент, обратный прокси
Образы1,3 ГБ суммарно
Обязательно снаружидомен и валидный TLS, без них федерации нет
i

Про один гигабайт. Столько хватит серверу, который ни с кем не федерируется. Как только он входит во внешние комнаты, один Synapse держит около 480 МиБ, и рядом нужна база еще на 200. На машине с гигабайтом и без подкачки это упрется при первых же комнатах.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий адрес, валидный TLS, веб-клиент и файл с доступами.

Рекомендуемая конфигурация: CPU2-RAM4-DISK50

Развернуть в 1 клик →
Установка

Развертывание на Fatmetal Cloud Server

Готового набора апстрим не дает: файл compose в репозитории - набросок из двух сервисов, без клиента, без TLS, с паролем changeme и базой SQLite по умолчанию. Собираем стек сами, от чистой машины до рабочего экрана ушло около трех минут.

  1. Выбрать имя сервера - один раз и навсегда

    Домен попадает в адреса сотрудников и в ключ подписи сервера. Поменять его после запуска нельзя: это будет другой сервер с другими аккаунтами.

  2. Поставить Docker

    Образ Ubuntu приходит без него. Установка из официального репозитория заняла около 40 секунд.

  3. Сгенерировать конфигурацию средствами самого образа

    Без файла настроек контейнер не стартует. Образ создаст его сам вместе со всеми секретами.

    docker run --rm -v /opt/synapse/data:/data \
      -e SYNAPSE_SERVER_NAME=chat.example.ru -e SYNAPSE_REPORT_STATS=no \
      ghcr.io/element-hq/synapse:v1.161.0 generate
  4. Переключить на PostgreSQL и закрыть регистрацию

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

    POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
  5. Поднять стек и отдать наружу через прокси

    Обратный прокси забирает на себя TLS и раздает пути: API сервера, веб-клиент и два файла well-known, по которым чужие серверы находят ваш.

    cd /opt/synapse && docker compose pull && docker compose up -d
  6. Завести первого пользователя

    Регистрация закрыта, поэтому администратор создается изнутри контейнера по общему секрету из конфигурации.

    docker exec synapse-synapse-1 register_new_matrix_user -u admin -p 'пароль' -a \
      -c /data/homeserver.yaml http://localhost:8008
Экран подтверждения устройства при первом входе в Element
Первый вход: клиент просит подтвердить устройство. Это часть сквозного шифрования, а не ошибка настройки
Замеры

Что измерили

Цифры сняты на тестовом CPU2-RAM4-DISK50 по показателю anon в cgroup, а не по docker stats: тот считает страничный кэш как память процесса.

Память в простое, весь стек147 МиБ: сервер 107, база 27, прокси 11, клиент 2
Память после двух больших внешних комнат704 МиБ: сервер 479, база 206
База данных53 МБ после установки, 408 МБ после федерации
От чистой машины до рабочего экранаоколо 3 минут
Перезапуск до ответа снаружи20,6 с
Отклик API0,129 с в простое, 0,157 с под фоновой нагрузкой
Вход пользователя0,553 с

Федерацию проверял не наш скрипт, а внешний арбитр - официальный federationtester проекта Matrix. Он ответил FederationOK: true, с валидными сертификатами и без ошибок соединения.

Проверено на версии 1.161.0, 29 сентября 2026. На новых версиях результаты могут отличаться.

Находка

Вход в большую комнату стоит дорого, но платишь не сразу

Мы вошли в две крупные публичные комнаты matrix.org. Запрос вернулся за 9,9 и 4,4 секунды - и это обманчиво быстро.

Synapse отдает ответ с частичным состоянием комнаты. Сразу после входа админский интерфейс показывал в Matrix HQ тринадцать событий состояния, через несколько минут - 13 295.

Настоящая работа идет фоном. За четверть часа память сервера выросла со 107 до 511 МиБ, база - с 53 до 315 МБ, процессор держался на 20-50 процентах. Сервер при этом стоял пустой: один пользователь, ни одного сообщения.

МоментПамять сервераБаза
После установки107 МиБ53 МБ
Через 15 минут после первой комнаты511 МиБ315 МБ
Пик на второй комнате541 МиБ-
Установившееся значение479 МиБ408 МБ

Вывод для планирования: расход растет не от числа сотрудников, а от числа и размера внешних комнат, в которые входит сервер. Десяток рабочих комнат внутри компании почти ничего не стоит.

Комната Matrix HQ с matrix.org, открытая со своего сервера
Федерация в работе: комната matrix.org на 7,3 тысячи участников, открытая со своего сервера. Чужие имена и сообщения скрыты нами
i

Старый тест больше не работает. Совет "зайди в #matrix:matrix.org и смотри, как сервер задыхается" писался про другую комнату: она переехала на двенадцатую версию протокола, а исторический гигант остался позади как предшественник.

Грабли

Где может сломаться

Три вещи, на которые уходит время при первой установке.

M_THREEPID_DENIED при попытке восстановить пароль

Причина. В конфигурации нет блока почты, поэтому сервер не может отправить письмо и отказывает сразу.

Решение. Прописать SMTP в homeserver.yaml и привязать адрес пользователю. У нас после этого письмо о сбросе пароля дошло до ящика за секунды. Отказ здесь быстрый и понятный, хуже был бы молчаливый таймаут.

Сервер работает, но чужие серверы его не видят

Причина. Нет делегирования: федерация ищет либо файл /.well-known/matrix/server на основном домене, либо порт 8448 с валидным сертификатом.

Решение. Отдавать well-known через прокси и проверять результат внешним federationtester, а не изнутри машины. Сервер без этого выглядит рабочим, но живет в одиночестве.

i

Имя сервера не меняется. Это главный необратимый шаг. Домен зашит в адреса пользователей и в ключ подписи; передумали - только новая установка и новые аккаунты. Ключ подписи из каталога данных обязательно в бэкап.

Эксплуатация

Безопасность и обновления

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

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

enable_registration: false
presence:
  enabled: false
url_preview_enabled: false
media_retention:
  remote_media_lifetime: 30d

Обновление - смена тега образа и перезапуск, миграции базы применяются сами. Релизы выходят раз в одну-две недели, и примечания читать стоит: в 1.162 меняется версия комнат по умолчанию, а это влияет на совместимость.

Раздел сеансов в настройках Element: список устройств и их статус проверки
Управление сеансами: каждое устройство видно отдельно, непроверенные помечены. Это часть модели шифрования, а не декорация
Рядом

Связь с другими стеками

  • Mattermost - корпоративный чат без федерации: ставится проще и требует меньше внимания, но переписка с внешней организацией через него не идет.
  • Keycloak или authentik - единый вход: Synapse умеет OIDC, и сотрудники заходят теми же учетными записями, что и в остальные сервисы.
  • Свой почтовый сервер - письма о сбросе пароля и уведомления нужны серверу чата так же, как любому продукту с учетными записями.
  • Резервное копирование - каталог данных с ключом подписи и база PostgreSQL. Потеря ключа означает потерю доверия других серверов.
Комната со включенным сквозным шифрованием в Element
Приватная комната создается шифрованной: поле ввода прямо сообщает, что сообщение уйдет зашифрованным
Границы

Когда это НЕ ваш выбор

Нужен просто чат для небольшой команды

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

Нет домена и нет желания им заниматься

Без домена с валидным сертификатом сервер работает, но остается изолированным, и главное свойство продукта не используется.

Нужен самый легкий сервер Matrix

Альтернативные реализации протокола расходуют заметно меньше памяти, хотя и отстают по возможностям. Synapse - самый полный и самый тяжелый.

Лицензия AGPL не проходит юридически

Для внутреннего использования она безопасна, но встраивание сервера в свой продукт потребует коммерческой лицензии Element.

Вопросы

Коротко о частом

Хватит ли 4 ГБ памяти?

Да. Весь стек с двумя большими внешними комнатами занял 704 МиБ, запас остается и на десяток рабочих комнат, и на небольшую команду.

Нужен ли отдельный клиент?

Да, сервер отдает только API. Мы ставили Element Web рядом, он открывается сразу на русском. Мобильные приложения подключаются к тому же серверу.

Можно ли поменять домен потом?

Нет. Имя сервера участвует в адресах пользователей и в ключе подписи. Смена означает новую установку с новыми аккаунтами.

Обязательна ли PostgreSQL?

Для эксплуатации да. SQLite проект допускает только для тестов, а сгенерированная по умолчанию конфигурация использует именно ее - это надо исправить до запуска.

Что бэкапить?

Каталог данных с ключом подписи сервера и базу PostgreSQL. Без ключа другие серверы перестанут доверять вашему.

Правда ли, что бесплатная версия не годится для прода?

Это формулировка со страницы цен вендора. На нашем стенде Community-сборка работала стабильно, память и отклик укладывались в CPU2-RAM4-DISK50. Чего у нее нет - поддержки от Element без подписки.

Как заводить сотрудников?

Открытую регистрацию на федеративном сервере держать нельзя. Пользователей создает администратор командой изнутри контейнера или через единый вход по OIDC.

Итог

Synapse 1.161.0 на машине за 500 рублей в месяц дает то, чего не дают ни Slack, ни self-hosted чаты попроще: переписку на своем домене, шифрование по умолчанию и прямую связь с серверами других организаций. В простое весь стек занимает 147 МиБ, после входа в две большие внешние комнаты - 704 МиБ. Формулировку вендора про непригодность бесплатной сборки наш стенд не подтвердил: она работает, отвечает за десятые доли секунды и переживает перезапуск за двадцать секунд. За подписку покупается не стабильность, а поддержка и обещанная экономия памяти на больших инсталляциях. Цена входа - домен, полчаса настройки и понимание, что имя сервера выбирается один раз.

Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи