Настройка своего моста
API регистрация
Нужно зарегать своё приложение тут: register записываем/держим открытым, чтобы забрать api_id и api_hash для моста и может ещё адреса
Регистрация бота
Идём к папочке ботов BotFather
И создаём бота
/start
/newbot
Название бота - например Matrix Bridge
username бота - например example_matrix_bot
В итоге получите:
Done! Congratulations on your new bot. You will find it at t.me/example_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
123456789:abcdefghijklmniopqrstuvwxyzABCDEFGH
Keep your token secure and store it safely, it can be used by anyone to control your bot.
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
Отсюда нам нужно взять только BOT TOKEN: 123456789:abcdefghijklmniopqrstuvwxyzABCDEFGH
/start
- чтобы активировать бота
Установка софта
Покажу на примере установки в докере с docker-compose
version: "3"
services:
synapse:
image: matrixdotorg/synapse:latest
restart: unless-stopped
ports:
- 8008:8008
volumes:
- ./synapse:/data
turn:
image: coturn/coturn:latest
restart: unless-stopped
user: 998:997
ports:
- 3478:3478
- 3478:3478/udp
- 5349:5349
- 5349:5349/udp
- 49160-49200:49160-49200/udp
volumes:
- ./turnserver.conf:/etc/coturn/turnserver.conf:ro
- /path/to/file.crt:/etc/turn-cert/cert.crt
- /path/to/file.key:/etc/turn-cert/private.key
mautrix-telegram:
container_name: mautrix-telegram
image: dock.mau.dev/mautrix/telegram:latest
restart: unless-stopped
volumes:
- ./mautrix-telegram:/data
Записали в docker-compose.yaml
это всё и запускаемdocker-compose up -d
В папке ./mautrix-telegram
появится файл config.yaml
открываем его в любом редакторе с sudo, у меня это micro - sudo micro ./mautrix-telegram/config.yaml
оставил только то, что следует менять, остальное можно не трогать
homeserver:
# Меняем на свой, это адрес как подключиться к вашему серверу извне
address: https://matrix.example.org
# Домен домашнего сервера (for MXIDs, etc).
domain: matrix.example.org
appservice:
# Адрес как внутри докера достучаться до моста из домашнего сервера, для docker-compose это название сервиса, что мы указали mautrix-telegram
address: http://mautrix-telegram:29317
# База будет самый простой sqlite, если есть постгресс, в официальном примере есть он, я использую sqlite
database: sqlite:////data/filename.db
# Разрешения на использование моста.
# Допустимые значения:
# relaybot - Использовать мост только через relaybot, без доступа к командам.
# user - уровень Relaybot + доступ к командам для создания мостов.
# puppeting - Уровень пользователя + вход с учетной записью Telegram.
# full -Полный доступ к использованию моста, т.е. предыдущие уровни + вход в Matrix.
# admin -Полный доступ для использования моста и некоторых дополнительных команд администрирования.
# Разрешенные ключи:
# * - Все Matrix пользователи
# domain - Все пользователи на этом домашнем сервере
# mxid - Конкретный пользователь
#
# Указываем, что все могут только просто писать без команд.
# А так же назначаем себя админом, скопировать можно в описании своего профиля
permissions:
"*": "relaybot"
"@admin:matrix.example.org": "admin"
# Вот то что сохранили или оставили открым с самого начала
# Заполняем app_id, app_hash c первого шага, bot_token который получили от BotFather
telegram:
api_id: 123456
api_hash: secret_hash
bot_token: bot_token
Сохраняемся - если всё успешно, то появиться файл - registration.yaml
копируем его в папку ./synapse
можно с переименованиемsudo cp ./mautrix-telegram/registration.yaml ./synapse/registration_telegram.yaml
Далее заходим в настройки synapse - sudo micro ./synapse/homeserver
находим закомментированный пункт app_service_config_files
раскомментируем и добавляем наш файл.
app_service_config_files:
- /data/registration_telegram.yaml
Перезапускаем всё docker-compose down && docker-compose up -d
В телеграме
- Добавляете бота которого создали в свой чат
- Назначаете администратором
- Пишете в чат команду
/id
бот ответит id команты, например-100004314
В Матриксе
- Создаёте комнату, которая будет чатом
- Приглашаете себе @telegrambot:ваш.matrix-server.com
- Пишем
!tg bridge
и далее id из телеграма, будет как то там!tg bridge -100004314
- Мост попросит подтверждения, отвечаем продолжить
!tg continue
Полезные ссылки, источники
https://wiki.calculate-linux.org/matrix_telegram_bridge
https://docs.mau.fi/bridges/general/troubleshooting.html
https://docs.mau.fi/bridges/general/docker-setup