Выберите имя сервера
Пользовательское имя сервера может быть трудно изменить позже. Разберитесь с делегированием и общеизвестными записями, используемыми вашим развёртыванием. Проверяйте обнаружение клиентов и федерацию, а не предполагайте, что успешный вход через веб доказывает и то и другое.
Используйте поддерживаемый стек
Synapse обычно использует PostgreSQL для производственных данных, а вспомогательные сервисы зависят от масштаба и конфигурации. Следуйте актуальным рекомендациям upstream. Согласуйте тайм-ауты воркеров, базы данных и обратного прокси с нагрузкой.
Сохраняйте точность заявлений о шифровании
Сквозное шифрование защищает содержимое в поддерживаемых зашифрованных комнатах между участвующими клиентами. Домашний сервер по-прежнему может обрабатывать метаданные и незашифрованное содержимое. Резервное копирование ключей клиента, проверка и восстановление аккаунта требуют отдельного объяснения.
Обслуживайте экземпляр
Ограничивайте регистрацию, когда это уместно, защищайте административные интерфейсы и интерфейсы общих секретов и задавайте продуманные сроки хранения медиа и событий. Согласованно создавайте резервные копии базы данных, конфигурации и ключей подписи, затем проверяйте восстановление.
Тестируйте клиентские и федеративные пути отдельно
Клиент, например Element, обращается к клиентскому API домашнего сервера, а другие домашние серверы используют обнаружение федерации и соответствующие эндпоинты. Изменение обратного прокси может нарушить одно, оставив другое рабочим. Проверьте новый аккаунт, локальную комнату и авторизованную федеративную комнату, затем проверьте шифрование и восстановление из клиента.
Официальная документация: Текущее руководство по установке Synapse
Сохраняйте долговечный идентификационный материал
База данных — это не вся идентичность домашнего сервера. Сохраняйте ключ подписи, соответствующую конфигурацию и секреты в согласованной резервной копии. Проверьте, какие внешние медиа и история сохраняются, и задайте политику, подходящую для вашего сообщества. Следите за хранилищем и очередями обработчиков, пока рост не стал сбоем.
Отделите имя аккаунта от хостинговой конечной точки
Определите server_name Matrix до создания учётной записи: он становится частью идентификаторов пользователей и комнат. Веб-имя хоста, обслуживающее Synapse, может отличаться при правильной настройке обнаружения/делегирования. Спланируйте и клиентское обнаружение, и обнаружение между серверами, действительный сертификат и фактически доступное семейство адресов. Element — это клиент, а не замена домашнему серверу. Сохраняйте независимый маршрут администратора и контакт для восстановления вне домашнего сервера.
- Выберите поддерживаемый выпуск Synapse и развёртывание PostgreSQL, подходящее для продакшена.
- Держите базу данных и административные слушатели закрытыми.
- Явно определите политику регистрации и федерации.
Официальная документация: Установка Synapse · Делегирование Matrix
Включите обнаружение и прокси в состав сервиса
Сгенерируйте конфигурацию для выбранного релиза, сохраните ключ подписи и базу данных и настройте прокси согласно официальным рекомендациям Synapse. Внешне видимый origin, пересылаемые заголовки и пути запросов должны совпадать. Если используется делегирование, отдавайте требуемые well-known документы с домена идентификации. Не открывайте необработанный внутренний порт API, чтобы решить ошибку прокси. Держите секреты регистрации вне конфигурации браузерного клиента.
Официальная документация: Обратный прокси Synapse
Проверьте клиентскую сессию и сессию федерации
Создайте тестовый аккаунт, подключите поддерживаемый клиент, отправьте локальное сообщение и загрузите небольшой файл. Проверьте обнаружение клиента независимо от обнаружения федерации, затем протестируйте комнату с другим разрешенным сервером, если федерация предполагается. В зашифрованной комнате проверьте верификацию и процесс восстановления ключей клиента. Резервная копия домашнего сервера не восстанавливает автоматически каждый ключ расшифровки, хранящийся на клиенте. Объясните, какие метаданные сервер сохраняет и какие комнаты зашифрованы.
# Discovery checks use your identity domain and HTTPS:
curl --fail https://example.com/.well-known/matrix/client
curl --fail https://example.com/.well-known/matrix/serverИспользуйте местоположение ошибки, чтобы сузить область исправления
Если Element не может обнаружить сервер, проверьте ответ well-known клиента и источник TLS. Если локальный обмен сообщениями работает, а федерация — нет, проверьте делегирование федерации, доступные адреса, сертификаты и политику. Повторяющиеся сбои медиа могут быть связаны с лимитами загрузки или хранилищем. Согласованно сохраняйте базу данных, медиа, конфигурацию и ключи подписи; сначала тестируйте восстановление без включённой федерации, чтобы учения не создали конкурирующую копию рабочей идентичности.