matterbridge связывает канал Discord с комнатами в Telegram, Matrix, Slack, IRC, Mattermost и других сетях: то, что написано в одной комнате, появляется в остальных. Комнаты вы выбираете в matterbridge.toml в разделе Files, токен Discord-бота вставляете на вкладке Бот, а токен Telegram-бота, если он нужен, в разделе Окружение.
Установлена версия 1.26.0; с 2023 года проект не выпускал обновлений, поэтому мы предлагаем её как есть.
- В Discord Developer Portal создайте бота, скопируйте его токен и включите Server Members Intent и Message Content Intent.
- В панели сделайте так, чтобы сервер запускал matterbridge (Изменить, что запускается), вставьте токен Discord в карточку Настройка бота и пригласите бота.
- Для Telegram создайте бота у @BotFather и вставьте его токен в Бот, Окружение, Учётные данные, Telegram bot token.
- Откройте
matterbridge.tomlв Files, впишите ID своего сервера Discord и комнаты для связи, а строку сPNH_EXAMPLE_CONFIGудалите. - Нажмите Запустить в Console.
Каждый шаг разобран ниже. Пример файла связывает один канал Discord с одной группой Telegram, это самый частый случай.
1. Сторона Discord
- Создайте бота и скопируйте его токен: Как создать Discord-бота и получить его токен. На странице Bot вашего приложения включите Server Members Intent и Message Content Intent и нажмите Save Changes.
- Откройте сервер в панели. На странице Обзор, в карточке Настройка бота, нажмите шаг Что запускается. Если там не написано «Этот бот запускает matterbridge.», нажмите Изменить, что запускается, выберите matterbridge, нажмите Дальше, поставьте галочку подтверждения и нажмите Сменить тип сервера.
- Шаг Подключение к Discord: вставьте токен в поле Вставьте токен бота, нажмите Подключить, затем Да, продолжить.
- Шаг Разрешения: оба интента должны показывать Вкл. в столбце В вашем портале. В разделе Ссылка-приглашение нажмите Добавить на сервер Discord. В ссылку входит Управление вебхуками: благодаря ему сообщения с другой стороны отображаются с именем и картинкой каждого отправителя.
2. Сторона Telegram
- В Telegram напишите @BotFather: отправьте
/newbot, выберите имя и скопируйте выданный токен. - Там же отправьте @BotFather команду
/setprivacy, выберите своего бота и нажмите Disable. Иначе бот Telegram видит в группе только команды, а не обычные сообщения. - Добавьте бота в свою группу Telegram. Чтобы узнать ID чата группы (отрицательное число), на минуту добавьте в группу @getidsbot.
- В панели откройте вкладку Бот и нажмите Окружение. На карточке Учётные данные нажмите Задать рядом с Telegram bot token, вставьте токен и нажмите Сохранить.

3. Заполните matterbridge.toml
- Откройте Files и нажмите
matterbridge.toml. - В
[discord.mydiscord]заменитеYOUR_DISCORD_SERVER_IDна ID своего сервера: в Discord откройте Settings, Advanced, включите Developer Mode, затем щёлкните значок сервера правой кнопкой мыши и выберите Copy Server ID. - В разделе
[[gateway]]укажите для Discord вchannelназвание своего канала без#, а для Telegram вchannelID чата группы. - Удалите первую строку, содержащую
PNH_EXAMPLE_CONFIG, и сохраните файл.
Заполненные части выглядят так:
[discord.mydiscord]
Server="123456789012345678"
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
AutoWebhooks=true
PreserveThreading=true
[telegram.mytelegram]
RemoteNickFormat="<{NICK}> "
MessageFormat="HTMLNick"
[[gateway]]
name="gateway1"
enable=true
[[gateway.inout]]
account="discord.mydiscord"
channel="general"
[[gateway.inout]]
account="telegram.mytelegram"
channel="-1001234567890"

Оставьте названия учётных записей discord.mydiscord и telegram.mytelegram: именно так два токена, сохранённые в панели, попадают в matterbridge, поэтому записывать их в файл не нужно.
4. Запустите бота
Откройте Console и нажмите Запустить. Когда файл готов, вы увидите строку с версией, а затем:
[PlayNHost] Starting your bot
Напишите сообщение в канале Discord: оно появится в группе Telegram с именем отправителя, и наоборот.
Matrix или Slack вместо Telegram
Поле учётных данных в панели есть только для Telegram. Для других сетей добавьте в matterbridge.toml раздел учётной записи с её логином прямо в файле, затем добавьте эту учётную запись в шлюз. Любой, у кого есть доступ к файлам вашего сервера, сможет это прочитать, а бэкапы это включают.
- Matrix: заведите для моста отдельную учётную запись Matrix, а не используйте свою. Добавьте
[matrix.mymatrix]сServer="https://matrix.org"(ваш homeserver),LoginиPassword, затем[[gateway.inout]]сaccount="matrix.mymatrix"иchannel="#yourroom:matrix.org". Зашифрованные комнаты не поддерживаются. - Slack: matterbridge 1.26.0 подключается к Slack с токеном отдельного пользователя Slack. С момента этого выпуска правила токенов Slack изменились, поэтому для Slack следуйте собственной вики matterbridge и проверьте всё, прежде чем на это полагаться.
Все параметры каждой сети описаны в вики matterbridge (github.com/42wim/matterbridge/wiki). После каждого изменения файла перезапускайте бота.
Строки консоли, которые вы можете увидеть
[PlayNHost] matterbridge is not set up yet: matterbridge.toml is still the example.
В файле всё ещё есть строка PNH_EXAMPLE_CONFIG или YOUR_DISCORD_SERVER_ID. Завершите шаг 3, затем нажмите Перезапустить.
[PlayNHost] Created matterbridge.toml from the example.
Файла matterbridge.toml не было, поэтому записан новый пример. Заполните его, как в шаге 3.
[PlayNHost] matterbridge is not installed. Reinstall it on the Bot page, Code, then press Start.
Программа отсутствует. Нажмите Переустановить на карточке Переустановить в разделе Бот, Код и подтвердите. Ваш matterbridge.toml останется.
Полезно знать
- Debug log в разделе Бот, Код, Настройки записывает в журнал каждое сообщение, которое пересылает matterbridge. Включайте его только на время поиска проблемы: введите
1, нажмите Сохранить и перезапустите бота;0выключает его. - matterbridge только подключается наружу к сетям чатов. Он не открывает порт и не требует домена.
- Пишете собственного бота для Telegram, Slack или Matrix? Как запустить бота для Telegram, Twitch, Slack или Matrix.



