Files
Matrix/мост Telegram.md
T

6.6 KiB
Raw Blame History


🌉 Ультимативный гайд (Часть 3): Мосты (Telegram) и Единый Мессенджер

Чтобы не перегружать ядро Matrix (Synapse) и не рисковать его стабильностью при синхронизации огромных чатов, мы выносим мосты в отдельный LXC-контейнер (например, 172.20.6.6).

🗄 ШАГ 1: База данных для моста (На NAS)

Мосту нужно хранить свои ключи и связки ID. Заходим по SSH на NAS и создаем базу:

sudo -u postgres psql
CREATE USER mautrix_tg WITH PASSWORD 'ТвойСложныйПароль';
CREATE DATABASE mautrix_tg OWNER mautrix_tg ENCODING 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C' TEMPLATE template0;
\q

🛠 ШАГ 2: Подготовка контейнера и Виртуального окружения

Заходим в новый LXC-контейнер для мостов (172.20.6.6).

1. Системные пакеты (включая ffmpeg для конвертации голосовых/видео):

apt update && apt upgrade -y
apt install -y build-essential python3 python3-dev python3-venv python3-pip \
               libffi-dev libssl-dev libpq-dev libmagic-dev \
               ffmpeg wget nano sudo

2. Создаем пользователя и окружение:

adduser --system --group --no-create-home mautrix
mkdir -p /opt/mautrix-telegram
chown -R mautrix:mautrix /opt/mautrix-telegram
cd /opt/mautrix-telegram

python3 -m venv env
source env/bin/activate

3. Установка моста (Важный нюанс для Python 3.13+):

pip install --upgrade pip wheel
# Жизненно важно для новых версий Python: откатываем setuptools, иначе мост не найдет свои ресурсы
pip install "setuptools<70" 
# Ставим сам мост, драйвер БД и поддержку SOCKS5-прокси
pip install mautrix-telegram[all] psycopg2 pysocks

⚙️ ШАГ 3: Конфигурация моста

Скачиваем официальный шаблон конфига:

wget https://raw.githubusercontent.com/mautrix/telegram/v0.15.3/mautrix_telegram/example-config.yaml -O config.yaml

Открываем nano config.yaml и меняем ключевые блоки:

1. Подключение к Synapse и БД:

homeserver:
    address: http://172.20.6.5:8008 # IP вашего Synapse
    domain: ВАШ_ДОМЕН.ru
appservice:
    address: http://172.20.6.6:29317 # IP этого контейнера
    hostname: 0.0.0.0
    port: 29317
    database: postgresql://mautrix_tg:ТвойСложныйПароль@172.20.50.10:5432/mautrix_tg

2. Права доступа (Обязательно удалите example.com!):

    permissions:
        '*': relaybot
        ВАШ_ДОМЕН.ru: full
        '@admin:ВАШ_ДОМЕН.ru': admin

3. Double Puppeting (Марионеточное управление): Это позволяет писать в Матриксе, а в Телеграме сообщения будут от вашего имени.

    double_puppet_server_map:
        ВАШ_ДОМЕН.ru: https://ВАШ_ДОМЕН.ru
    
    # ВАЖНО: Пишем в одну строку (в фигурных скобках), чтобы избежать багов парсера!
    login_shared_secret_map: {"ВАШ_ДОМЕН.ru": "СЕКРЕТ_ИЗ_HOMESERVER_YAML_SYNAPSE"}

4. Обход блокировок (SOCKS5 Прокси) и Ключи:

telegram:
    api_id: 123456       # Ваши ключи с my.telegram.org
    api_hash: abcdef... 
    
    proxy:
        type: socks5
        address: 172.20.0.1  # IP вашего роутера с поднятым прокси
        port: 1080
        rdns: true
        username: ''
        password: ''

🤝 ШАГ 4: Регистрация моста в Synapse

1. Генерируем "Паспорт" моста:

python -m mautrix_telegram -g -c config.yaml
cat registration.yaml

(Скопируйте весь выведенный текст).

2. Идем в контейнер Synapse (172.20.6.5):

  • Создаем файл: nano /opt/synapse/data/telegram-registration.yaml и вставляем текст.
  • Открываем главный конфиг: nano /opt/synapse/data/homeserver.yaml.
  • Добавляем путь в самый конец:
    app_service_config_files:
      - /opt/synapse/data/telegram-registration.yaml
    
    

🛠 Как отключить Rate Limits в "чистом" Synapse

# Отключаем лимиты для мостов (Rate Limiting)
rc_messages:
  per_second: 1000
  burst_count: 5000

rc_registration:
  per_second: 100
  burst_count: 500

rc_login:
  address:
    per_second: 100
    burst_count: 500
  account:
    per_second: 100
    burst_count: 500

rc_admin_redaction:
  per_second: 100
  burst_count: 500

rc_joins:
  local:
    per_second: 100
    burst_count: 500
  remote:
    per_second: 100
    burst_count: 500

rc_invites:
  per_room:
    per_second: 100
    burst_count: 500
  per_user:
    per_second: 100
    burst_count: 500

(Сохрани файл: Ctrl+O, Enter, Ctrl+X).

  • Перезапускаем Synapse: systemctl restart matrix-synapse.

🚀 ШАГ 5: Запуск в виде Службы

Возвращаемся в контейнер мостов (172.20.6.6). Выходим из виртуального окружения (deactivate) и создаем службу:

chown -R mautrix:mautrix /opt/mautrix-telegram
nano /etc/systemd/system/mautrix-telegram.service

Вставляем:

[Unit]
Description=Mautrix-Telegram bridge
After=network.target

[Service]
Type=simple
User=mautrix
Group=mautrix
WorkingDirectory=/opt/mautrix-telegram
ExecStart=/opt/mautrix-telegram/env/bin/python -m mautrix_telegram -c /opt/mautrix-telegram/config.yaml
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Запускаем:

systemctl daemon-reload
systemctl enable --now mautrix-telegram

🎉 ГОТОВО! Открывайте Element, начинайте чат с @telegrambot:ВАШ_ДОМЕН.ru и пишите команду login.