После создания сервера все четыре контейнера поднимаются сами: Docker разворачивает Synapse, PostgreSQL, веб-клиент Element и обратный прокси Caddy, который выпускает сертификат Let's Encrypt на magic-DNS адресе сервера. Администратора заводит сама установка. Первый ответ сервера приходит примерно через минуту после старта.

Имя сервера задается один раз и потом не меняется. Оно записано в адресах всех пользователей (@admin:ваш-адрес) и в ключе подписи сервера, которым его опознают другие серверы Matrix. Если собираетесь повесить свой домен - сделайте это до того, как заведете сотрудников, иначе учетные записи придется создавать заново.

Что внутри

  • Synapse (Python/Twisted + Rust) - сервер Matrix: комнаты, федерация, сквозное шифрование, API для мобильных и десктопных клиентов.
  • Element Web - веб-клиент на русском, настроен на этот сервер из коробки.
  • PostgreSQL 15 - учетные записи, комнаты, переписка.
  • Caddy - reverse-proxy и авто-TLS (Let's Encrypt), отдельный контейнер. Сервер и база слушают только localhost.

Безопасность

  • Регистрация закрыта с первого запуска - администратора заводит установка, посторонний с адресом учетку не создаст. Новых сотрудников добавляет администратор.
  • Ставится конкретная проверенная версия, не latest - при обновлении версия меняется в параметрах, и подтягивается новый образ.
  • Presence выключен - индикатор "в сети" в федерации требует много сетевого трафика на каждую комнату; отключен сразу, чтобы не расходовать ресурсы впустую.
  • HTTPS с автопродлением - Let's Encrypt на magic-DNS или вашем домене, порт 8448 для федерации открыт наружу.

Как войти

  1. Адрес формируется из IP сервера: замените точки на дефисы и добавьте .fatmetal.net. Пример: IP 45.15.159.205 -> https://45-15-159-205.fatmetal.net (этот же адрес показан при входе по SSH).
  2. Администратор уже создан установкой: логин admin, пароль - тот же, что для входа по SSH на этот сервер. Регистрация новых пользователей закрыта.
  3. Ваш адрес в Matrix - @admin:ваш-адрес, он работает как почтовый: по нему вас найдут пользователи с любого другого сервера Matrix. Мобильные и десктопные приложения Element подключаются к этому же серверу - при первом входе укажите его адрес.

Свой домен

Направьте A-запись на IP этого сервера, задайте DOMAIN=ваш.домен в /etc/synapse-mp/params.env и выполните bash /opt/synapse-mp/install.sh - Caddy перевыпустит сертификат под новый домен. Учитывайте необратимость: это создаст фактически новый сервер с новыми адресами пользователей. Полная инструкция - на сервере: cat /root/synapse-credentials.txt.

Требования

Тариф CPU2-RAM4-DISK50: в простое стек держит около 147 МиБ (сервер 107, база 27, прокси 11, клиент 2), образы на диске - 1,3 ГБ. После вступления в крупные комнаты федерации расход растет - на двух больших внешних комнатах стек занимал около 700 МиБ, запас в тарифе для этого есть. Расход зависит от числа и размера комнат федерации, а не от числа сотрудников.

Почта опциональна: без нее восстановление пароля по email не работает (сервер отвечает быстрым явным отказом), сам чат при этом полностью рабочий. Свой SMTP вписывается в /etc/synapse-mp/params.env.

Подробный разбор с замерами