Matrix-федерация
Aulynk поддерживает федерацию по протоколу Matrix, позволяя обмениваться сообщениями с другими серверами Aulynk и Matrix-совместимыми серверами (Synapse, Dendrite, Element X).
Включение федерации
Добавьте секцию federation в config.yaml:
federation:
enabled: true
serverName: "aulynk.company.ru"
port: 8448
mode: "open"
После изменения конфигурации перезапустите сервер. При первом запуске генерируется ключ подписи (ed25519), который хранится в базе данных.
Параметры конфигурации
| Параметр | Описание |
|---|---|
enabled | Включить/выключить федерацию |
serverName | Домен сервера, используемый в Matrix ID (например, @user:aulynk.company.ru) |
port | Порт для S2S API (стандартный -- 8448) |
mode | Режим работы: open, allowlist или disabled |
allowedServers | Список разрешённых серверов (для режима allowlist) |
blockedServers | Чёрный список серверов |
keyValidityHours | Время жизни ключей подписи в часах (по умолчанию 168 = 7 дней) |
insecureSkipVerify | Не проверять TLS-сертификаты (только для разработки) |
Режимы работы
open
Принимаются запросы от любых серверов. Подходит для публичных экземпляров.
allowlist
Принимаются запросы только от серверов, перечисленных в allowedServers. Подходит для корпоративных инсталляций с ограниченным кругом партнёров.
federation:
enabled: true
serverName: "aulynk.company.ru"
port: 443
mode: "allowlist"
allowedServers:
- "partner.example.com"
- "branch.company.ru"
disabled
Федерация полностью отключена. Эквивалентно enabled: false.
Настройка .well-known
Если порт федерации отличается от 8448 или сервер находится за reverse proxy, необходимо настроить .well-known запись. Aulynk отдаёт её автоматически, но можно разместить статический файл:
Файл /.well-known/matrix/server:
{
"m.server": "aulynk.company.ru:443"
}
Это позволяет удалённым серверам обнаружить актуальный адрес и порт для S2S-соединений.
Теневые пользователи (Shadow users)
При получении сообщений от удалённых серверов Aulynk создаёт теневых пользователей -- локальные записи, представляющие федеративных участников. Они отображаются в чатах с Matrix ID вида @user:remote-server.com.
Теневые пользователи:
- не могут входить локально;
- отображаются в списке участников федеративного чата;
- управляются через раздел Админ-панель > Федерация > Пользователи.
Админ-панель
В разделе Федерация доступна следующая статистика:
- количество федеративных комнат;
- количество событий (сообщений);
- количество теневых пользователей;
- список известных удалённых серверов с датой последнего события;
- список комнат с привязкой к локальным чатам.
Федерация с Element X
Element X подключается к серверу по стандартному Matrix CS API. Для корректной работы:
- Убедитесь, что
.well-known/matrix/serverдоступен по HTTPS. - Сервер должен отвечать на
/_matrix/federation/v1/version. - Используйте режим
openили добавьте домен Element-сервера вallowedServers. - Порт 8448 (или указанный в
.well-known) должен быть открыт для входящих соединений.