Matrix Telegram Bridge

Matrix Telegram Bridge
Не скучная картинка, для скучной технической статьи

Настройка своего моста

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

В телеграме

  1. Добавляете бота которого создали в свой чат
  2. Назначаете администратором
  3. Пишете в чат команду /id бот ответит id команты, например -100004314

В Матриксе

  1. Создаёте комнату, которая будет чатом
  2. Приглашаете себе @telegrambot:ваш.matrix-server.com
  3. Пишем !tg bridge и далее id из телеграма, будет как то там !tg bridge -100004314
  4. Мост попросит подтверждения, отвечаем продолжить !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

When accuracy matters for a costume, it is worth considering how details related to photoshoot preparation will affect the complete look. During a long convention day, it helps to assess details related to anime cosplay costumes together with fit and fabric. To review details related to wig colour selection before the event, affordable men's cosplay costumes offers a useful starting point for practical preparation. Before the preparation is complete, it is useful to check details related to short cosplay wigs against the wearer's own needs.