После создания сервера все четыре контейнера поднимаются сами: 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 для федерации открыт наружу.
Как войти
- Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.205->https://45-15-159-205.fatmetal.net(этот же адрес показан при входе по SSH). - Администратор уже создан установкой: логин
admin, пароль - тот же, что для входа по SSH на этот сервер. Регистрация новых пользователей закрыта. - Ваш адрес в 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.