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. Для корректной работы:

  1. Убедитесь, что .well-known/matrix/server доступен по HTTPS.
  2. Сервер должен отвечать на /_matrix/federation/v1/version.
  3. Используйте режим open или добавьте домен Element-сервера в allowedServers.
  4. Порт 8448 (или указанный в .well-known) должен быть открыт для входящих соединений.