Федерация в Matrix (Synapse) позволяет серверам обмениваться данными о комнатах, пользователях и сообщениях. Для настройки и запуска федерации вам нужно правильно сконфигурировать ваш сервер Synapse и обеспечить его доступность с других серверов в федерации. Для этого необходимо выполнить следующие шаги:
1. Установите Synapse.
Это можно сделать с помощью пакетных менеджеров или через `pip`, если вы используете Python. Инструкции можно найти в официальной документации Synapse.
2. Настройте ваш `homeserver.yaml`.
Найдите файл конфигурации `homeserver.yaml` и убедитесь, что вы установили правильные значения для вашего доменного имени в параметрах `server_name` и `public_baseurl`. При настройке федерации эти параметры крайне важны:
```yaml
server_name: "mydomain.com"
public_baseurl: https://mydomain.com
```
3. Настройте SSL/TLS.
Федерация требует, чтобы ваш сервер использовал защищенные соединения (HTTPS). Поэтому вам нужно настроить SSL/TLS сертификат для вашего доменного имени. Вы можете использовать Let's Encrypt для получения бесплатных сертификатов.
4. Проксирование через обратный прокси-сервер.
Если вы используете обратный прокси (например, Nginx или Apache), настройте его так, чтобы он проксировал запросы к вашему серверу Synapse. Обычно, Synapse слушает порт 8008 для HTTP и 8448 для HTTPS (федерации), но вы можете использовать стандартный HTTPS порт 443 на обратном прокси.
5. Настройте DNS.
Добавьте в DNS записи SRV и A/AAAA для вашего домена. Запись SRV сообщает другим серверам Matrix, как с вами связаться:
```txt
_matrix._tcp.mydomain.com. 3600 IN SRV 10 5 8448 matrix.mydomain.com.
```
Это указывает на то, что сервер федерации доступен на порту 8448 для домена `matrix.mydomain.com`.
6. Перезапустите Synapse.
После настройки конфигурационного файла и DNS-записей, перезапустите Synapse, чтобы изменения вступили в силу:
```shell
systemctl restart matrix-synapse
```
Если после настройки вы столкнулись с ошибкой `MatchingServerName`, это может означать, что имена серверов или сертификаты, используемые для общения между вашим сервером и федерацией, не соответствуют ожидаемым значениям. Обычно эта проблема связана с сертификатом SSL/TLS:
- Убедитесь, что доменное имя в сертификате соответствует значению параметра `server_name` в `homeserver.yaml`.
- Проверьте, что сертификат действителен и не просрочен.
- Убедитесь, что сетевой трафик на порту, указанном в DNS SRV (обычно 8448), может быть направлен и обработан вашим сервером Synapse.
Если вы проделали все шаги правильно, ваш сервер Synapse должен быть доступен для федерации с другими серверами Matrix. Для проверки доступности и правильности конфигурации федерации вы можете использовать инструменты, такие как https://federationtester.matrix.org/.