Как настроить мосты в Matrix: WhatsApp, Telegram и Discord

Для подключения Matrix к WhatsApp, Telegram или Discord запустите совместимый мостовой сервис рядом с вашим домашним сервером, зарегистрируйте этот сервис как сервис приложения Matrix, а затем свяжите или авторизуйте внешнюю учетную запись. Для каждой сети требуется своя собственная конфигурация моста и учетные данные. Сам по себе запущенный процесс не доказывает, что комната подключена: проверьте отправку сообщения в обоих направлениях после настройки.

Домашний сервер Matrix направляет трафик через отдельные мостовые сервисы Matrix для WhatsApp, Telegram и Discord в соответствующие сети обмена сообщениями.
Один домашний сервер Matrix может подключаться к трем отдельно настроенным мостовым сервисам.

В этом руководстве используются mautrix-whatsapp и mautrix-telegram , а также проект Matrix.org matrix-appservice-discord для Discord. Мост — это отдельная серверная программа, а не переключатель в Element. В спецификации Matrix такой тип интеграции называется сервисом приложения: он получает соответствующие события домашнего сервера и может создавать пользователей или комнаты в зарегистрированном для него пространстве имен. См. технический обзор Matrix и спецификацию API сервиса приложения .

Следует ли размещать мосты на собственном сервере или использовать общедоступный экземпляр?

Самостоятельное размещение позволяет контролировать место работы моста, способ хранения журналов и учетных данных, а также пользователей, имеющих право подключения. Это также означает, что вам необходимо поддерживать три сервиса, обновлять их, защищать их базы данных и устранять неполадки с подключением. Публичный мост может быть быстрее для тестирования, но его оператор контролирует доступность, политику доступа и обработку данных. Перед выбором экземпляра ознакомьтесь с текущей документацией и разделом поддержки моста; доступность и функциональные возможности могут меняться.

Эти соединения не эквивалентны встроенной поддержке служб обмена сообщениями. Функции мостового соединения могут различаться в зависимости от сети, а голосовые/видеозвонки, реакции, редактирование, ветки обсуждений, уведомления о прочтении, история или управление группами могут быть неполными. Прежде чем переносить важные обсуждения, протестируйте функции, от которых действительно зависит ваше сообщество.

Что вам понадобится перед установкой чего-либо?

  • Домашний сервер Matrix, поддерживающий службы приложений и предоставляющий администратору доступ для их регистрации. В приведенных ниже примерах используется Synapse; для других домашних серверов используется собственный процесс регистрации.
  • Доступный сетевой путь между домашним сервером и каждым мостом. В Docker под " localhostвнутри одного контейнера" ​​понимается сам контейнер; используйте общую сеть Docker и сетевое имя службы моста, когда домашнему серверу необходимо связаться с другим контейнером.
  • Для каждого моста требуется отдельный файл конфигурации, регистрационный файл, место хранения постоянных данных и хранилище секретов. Следуйте текущим инструкциям проекта относительно поддерживаемых баз данных, версий среды выполнения и образов контейнеров; требования могут отличаться и изменяться.
  • Для WhatsApp потребуется телефон с учетной записью, которую вы хотите связать. Для Telegram — учетная запись, уже авторизованная через официальный клиент Telegram. Для Discord — приложение/бот Discord и разрешение от владельца или администратора сервера.
В примере редактора Synapse YAML указаны отдельные пути к файлам регистрации в разделе app_service_config_files для служб-мостов WhatsApp, Telegram и Discord.
Synapse считывает каждый файл регистрации моста из пути, указанного в настройках app_service_config_files; приведенные пути являются примерами.

Как зарегистрировать мост в Synapse?

  1. Развертывайте по одному мосту за раз. Начните с текущей версии и ее примера конфигурации. Настройте адрес домашнего сервера, имя публичного сервера, адрес прослушивателя моста, базу данных и пути к хранилищу в соответствии с руководством для соответствующего проекта. Избегайте использования одной базы данных для несвязанных служб моста.
  2. Создайте файл регистрации. В процессе настройки моста создается YAML-файл регистрации, содержащий токены идентификации и аутентификации приложения и сервиса. Рассматривайте эти токены как пароли: ограничьте права доступа к файлам, не добавляйте их в Git и не вставляйте в публичные комнаты, скриншоты или сообщения в службу поддержки.
  3. Сделайте файл доступным для Synapse. Скопируйте или смонтируйте файл регистрации в месте, где процесс Synapse сможет его прочитать. Добавьте его путь ниже app_service_config_filesв файл конфигурации Synapse homeserver.yaml. Добавьте отдельную запись в список для каждого моста; не перезаписывайте запись другой службы. В руководстве по регистрации приложений Mautrix описан этот процесс, и отмечается, что Synapse необходимо перезапустить после изменения списка регистрации.
  4. Перезапустите Synapse и проверьте журналы. Перезапустите Synapse после изменения регистрации, затем запустите мост. Если Synapse не запускается, сначала проверьте отступы YAML-файла, путь к файлу внутри контейнера и права на чтение. Если мост запускается, но не может подключиться, проверьте URL-адрес домашнего сервера, сетевой маршрут, TLS-сертификат и адрес прослушивателя.

Для развертывания Docker адрес службы приложения, настроенный мостом, должен быть доступен из контейнера домашнего сервера. В примечаниях к начальной настройке Mautrix объясняется, почему имя контейнера в общей сети может работать там, где localhostэто не так. Проект Discord также документирует собственный процесс регистрации и пример конфигурации в файле README исходного кода .

Как подключить аккаунт WhatsApp?

После регистрации и запуска mautrix-whatsapp откройте приватный чат Matrix с его ботом-мостом и отправьте login qr. Откройте WhatsApp на телефоне, на котором зарегистрирован аккаунт, перейдите в раздел «Связанные устройства» и отсканируйте код, предоставленный мостом. В документации к мосту также описан вариант сопряжения кода с номером телефона; используйте метод, поддерживаемый вашей установленной версией. Не копируйте код входа или QR-код в общедоступную комнату.

В прямом чате Matrix с ботом WhatsApp Bridge рядом с экраном телефона отображается команда входа по QR-коду и подсказка о подключенных устройствах.
Процесс аутентификации в WhatsApp Bridge запрашивает у вас привязку Bridge как устройства к учетной записи WhatsApp на вашем телефоне.

Во время сопряжения держите телефон и учетную запись доступными и убедитесь, что мост сообщает об успешном входе в систему, прежде чем открывать комнаты портала. Это связывает учетную запись через сессию в стиле «сопутствующее устройство»; это не превращает мост в официальную интеграцию WhatsApp Business API. WhatsApp может изменить поведение привязки устройств, поэтому следуйте текущим инструкциям по аутентификации mautrix-whatsapp . Мост может синхронизировать только ту историю, которую внешний сервис предоставляет связанному устройству и которую реализует мост.

Как подключиться к Telegram?

Начните приватный чат с ботом mautrix-telegram. Мост поддерживает вход по QR-коду и шестизначному коду авторизации, отправленному на уже авторизованный клиент Telegram; он не регистрирует новую учетную запись Telegram. Для входа по QR-коду откройте Telegram на своем телефоне, перейдите в Настройки > Устройства > Привязать настольное устройство , затем отправьте login qrQR-код боту-мосту и отсканируйте его. Следуйте подсказкам бота, если в вашей учетной записи Telegram включена двухфакторная аутентификация.

Бот Telegram Bridge отображает QR-код для входа в систему, в то время как на телефоне отображаются «Настройки Telegram», «Устройства» и «Подключить настольное устройство».
Экран «Подключить настольное устройство» в Telegram используется для авторизации сеанса моста; названия пунктов меню могут различаться в зависимости от версии приложения.

Используйте уже существующую учетную запись и следуйте правилам входа в Telegram. Разработчики моста предупреждают, что Telegram может рассматривать новые учетные записи, использующие сторонние клиенты, как подозрительные; это риск на стороне платформы, который администратор Matrix не может гарантировать исключить. Перед входом в систему ознакомьтесь с руководством по аутентификации mautrix-telegram и храните любой одноразовый код или пароль в личном чате с ботом.

Как настроить Discord?

Проект matrix-appservice-discord использует приложение Discord и бота. Создайте приложение на портале разработчиков Discord , создайте/настройте пользователя бота и задайте учетные данные бота в конфигурации моста, используя текущий пример проекта. Не раскрывайте токен бота. Запустите описанную в документации команду или процесс авторизации моста, а затем попросите владельца сервера Discord авторизовать бота для нужного сервера, предоставив ему только те разрешения, которые требуются мосту.

На странице настроек, оформленной в стиле портала разработчика, отображаются разделы «Приложение», «Бот» и «OAuth2» для бота Discord Bridge.
Настройка Discord начинается с приложения и бота; точные поля и параметры авторизации соответствуют текущему порталу Discord и примеру конфигурации моста.

Для конкретного канала получите его идентификаторы сервера и канала, используя поддерживаемые Discord инструменты разработчика, пригласите бота-моста со стороны Matrix в комнату Matrix и используйте описанную в документации команду для комнаты. В файле README разработчика приведен пример в таком виде !discord bridge ServerID ChannelID; для завершения привязки может потребоваться подтверждение администратора. Не используйте идентификаторы из иллюстрации: замените их фактическими идентификаторами и подтвердите команду и права доступа в файле README для вашей установленной версии.

В комнате Matrix содержится пример команды !discord bridge, за которой следуют заполнители идентификаторов сервера и канала.
Команда «Комната Discord» связывает комнату Matrix с сервером и каналом Discord; замените реальные ID и следуйте любым запросам на подтверждение.

Работа Discord особенно зависит от прав доступа бота и политики сервера. Если бот может присоединиться, но сообщения не передаются, убедитесь, что канал ему виден, предоставлены необходимые права доступа к сообщениям и что мост завершил все подтверждения администратора. В файле README проект помечен как бета-версия, поэтому уточняйте текущий статус проекта и поддерживаемое поведение, а не предполагайте, что все функции Discord будут воспроизводиться.

Как можно проверить работоспособность моста?

Сначала используйте небольшую закрытую тестовую комнату и канал с низким уровнем риска. Отправьте уникальное сообщение в открытом текстовом формате из Matrix и убедитесь, что оно отображается на удаленном сервисе; затем ответьте с удаленной стороны и убедитесь, что ответ отображается в Matrix. Проверьте отдельно атрибуцию, цепочку ответов, вложения, правки и реакции, если это важно для вашего случая. Зеленый статус процесса означает только то, что программа запущена: это не подтверждает успешный вход в систему, наличие у бота доступа к каналу или правильность сопоставления комнаты и канала.

В комнате Matrix и в канале Discord появляется тестовое сообщение, между которыми находится символ ссылки.
Полезным методом сквозной проверки является отправка тестового сообщения в каждом направлении и проверка того, появляется ли его аналог в подключенной комнате.

Если тест не пройден, сравните точное время сообщения с логами моста и домашнего сервера. Перед тем как делиться логами, удалите токены доступа, номера телефонов, идентификаторы Discord (если они конфиденциальны) и имена контактов. Для развертывания в контейнерах также убедитесь, что файл регистрации смонтирован в Synapse, конечная точка моста разрешается в общей сети и никакие брандмауэры не блокируют настроенный прослушиватель.

Панель журналов в терминальном стиле отображает нейтральные строки состояния для запущенного процесса моста, а также доступные подключения к домашнему серверу и удаленные подключения.
Используйте журналы моста и домашнего сервера для проверки работоспособности процессов и подключения; приведенные примеры строк состояния не являются зафиксированными результатами диагностики.

Что следует знать о шифровании и конфиденциальности?

Сервисы приложений получают события в пространствах имен и комнатах, для обработки которых они настроены. Не следует предполагать, что зашифрованная комната Matrix автоматически читается каждым мостом. Некоторые мосты Mautrix поддерживают сквозное шифрование, которое необходимо специально настроить и которое имеет свои собственные требования к управлению ключами; обратитесь к руководству по сквозному шифрованию Mautrix и проверьте поддержку для конкретного моста. Возможности шифрования мостов Discord могут отличаться. Если мост не может обрабатывать режим шифрования комнаты, используйте подходящую незашифрованную тестовую комнату или выберите мост с документированной поддержкой, вместо того чтобы ослаблять рабочую комнату, полагаясь на догадки.

Наконец, помните, что содержимое сообщений и учетные данные передаются через программное обеспечение, которое вы используете, или через общедоступного оператора моста. Ограничьте круг лиц, которые могут приглашать ботов моста, защитите базы данных и резервные копии, замените токен в случае его утечки и ознакомьтесь с текущими рекомендациями моста по конфиденциальности и безопасности. Перед обновлениями перепроверьте документацию разработчика: ключи конфигурации, сценарии входа в систему, зависимости и политики платформы могут изменяться независимо друг от друга.

Контрольный список для быстрого принятия решения

  • Выберите экземпляр моста, оператору и политике доступа которого вы доверяете.
  • Зарегистрируйте каждый мост отдельно и защитите каждый сгенерированный токен.
  • Убедитесь, что домашний сервер может связаться с адресом моста после развертывания.
  • Свяжите учетные записи WhatsApp/Telegram в приватном режиме и авторизуйте бота Discord у администратора сервера.
  • Протестируйте сообщения в обоих направлениях, а затем протестируйте только те дополнительные функции, которые вам необходимы.
  • Перед использованием моста для конфиденциальной или важной связи необходимо убедиться в наличии поддержки шифрования, истории операций и состоянии технического обслуживания.

Оставить комментарий

Устранение проблемы высокой загрузки ЦП в Jitsi Meet в браузерах клиентов.

Устранение проблемы высокой загрузки ЦП в Jitsi Meet в браузерах клиентов.

Диагностика скачков загрузки ЦП в браузере Jitsi Meet и снижение нагрузки на клиентское приложение путем проверки видеофайлов, эффектов камеры, графики браузера и настроек хоста.

Как отслеживать метрики Jitsi Videobridge с помощью Prometheus и Grafana

Как отслеживать метрики Jitsi Videobridge с помощью Prometheus и Grafana

Отслеживайте состояние Jitsi Videobridge, загрузку конференций и трафик с помощью встроенной точки доступа Prometheus, а затем анализируйте и отображайте данные в виде графиков в Grafana.

Как настроить пользовательское доменное имя для Jitsi Meet Docker

Как настроить пользовательское доменное имя для Jitsi Meet Docker

Настройте собственный домен для Jitsi Meet Docker с указанием DNS, PUBLIC_URL, HTTPS, Let's Encrypt, портов брандмауэра, настроек NAT и сквозной проверки.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Исправлено предупреждение Nextcloud «Неправильно настроен PHP OPcache».

Исправлено предупреждение Nextcloud «Неправильно настроен PHP OPcache».

Узнайте, как диагностировать и устранять предупреждение Nextcloud о конфигурации PHP OPcache, проверив активные параметры PHP SAPI, ограничения размера, комментарии и настройки повторной проверки.

Исправление ошибок миграции базы данных Kopano после обновления версии MySQL.

Исправление ошибок миграции базы данных Kopano после обновления версии MySQL.

Для устранения неполадок, возникающих при миграции базы данных Kopano после обновления MySQL или MariaDB, проверьте резервные копии, версии серверов, режимы SQL, кодировку, состояние схемы и журналы.

Как настроить аутентификацию LDAP и Active Directory в Nextcloud

Как настроить аутентификацию LDAP и Active Directory в Nextcloud

Подключите Nextcloud к LDAP или Active Directory с помощью защищенного канала связи, фильтров пользователей и групп, атрибутов входа в систему и проверенной процедуры развертывания.

Как исправить уведомления Element Android без сервисов Google: руководство по UnifiedPush

Как исправить уведомления Element Android без сервисов Google: руководство по UnifiedPush

Исправление проблем с уведомлениями Element Android на телефонах без привязки к Google путем настройки UnifiedPush, разрешений Android, параметров батареи и надежных тестов проверки.

Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

Исправлено предупреждение Nextcloud «В базе данных отсутствуют некоторые индексы».

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных с помощью официальной команды occ. Сначала сделайте резервную копию, просмотрите изменения, выполните восстановление и проверьте результат.

Как настроить единый вход (SSO) с помощью Keycloak в Element Web

Как настроить единый вход (SSO) с помощью Keycloak в Element Web

Настройте единый вход Keycloak для Element Web, подключив OIDC к Synapse, задав точный URL-адрес обратного вызова, сопоставив данные пользователя и протестировав выход из системы.