--- # 🌉 Ультимативный гайд (Часть 3): Мосты (Telegram) и Единый Мессенджер Чтобы не перегружать ядро Matrix (Synapse) и не рисковать его стабильностью при синхронизации огромных чатов, мы выносим мосты в **отдельный LXC-контейнер** (например, `172.20.6.6`). ### 🗄 ШАГ 1: База данных для моста (На NAS) Мосту нужно хранить свои ключи и связки ID. Заходим по SSH на NAS и создаем базу: ```bash sudo -u postgres psql ``` ```sql 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 для конвертации голосовых/видео):** ```bash 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. Создаем пользователя и окружение:** ```bash 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+):** ```bash pip install --upgrade pip wheel # Жизненно важно для новых версий Python: откатываем setuptools, иначе мост не найдет свои ресурсы pip install "setuptools<70" # Ставим сам мост, драйвер БД и поддержку SOCKS5-прокси pip install mautrix-telegram[all] psycopg2 pysocks ``` ### ⚙️ ШАГ 3: Конфигурация моста Скачиваем официальный шаблон конфига: ```bash wget https://raw.githubusercontent.com/mautrix/telegram/v0.15.3/mautrix_telegram/example-config.yaml -O config.yaml ``` Открываем `nano config.yaml` и меняем ключевые блоки: **1. Подключение к Synapse и БД:** ```yaml 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`!):** ```yaml permissions: '*': relaybot ВАШ_ДОМЕН.ru: full '@admin:ВАШ_ДОМЕН.ru': admin ``` **3. Double Puppeting (Марионеточное управление):** *Это позволяет писать в Матриксе, а в Телеграме сообщения будут от вашего имени.* ```yaml double_puppet_server_map: ВАШ_ДОМЕН.ru: https://ВАШ_ДОМЕН.ru # ВАЖНО: Пишем в одну строку (в фигурных скобках), чтобы избежать багов парсера! login_shared_secret_map: {"ВАШ_ДОМЕН.ru": "СЕКРЕТ_ИЗ_HOMESERVER_YAML_SYNAPSE"} ``` **4. Обход блокировок (SOCKS5 Прокси) и Ключи:** ```yaml 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. Генерируем "Паспорт" моста:** ```bash 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`. * Добавляем путь в самый конец: ```yaml app_service_config_files: - /opt/synapse/data/telegram-registration.yaml ``` ### 🛠 Как отключить Rate Limits в "чистом" Synapse ```yaml # Отключаем лимиты для мостов (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`) и создаем службу: ```bash chown -R mautrix:mautrix /opt/mautrix-telegram nano /etc/systemd/system/mautrix-telegram.service ``` *Вставляем:* ```ini [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 ``` Запускаем: ```bash systemctl daemon-reload systemctl enable --now mautrix-telegram ``` **🎉 ГОТОВО!** Открывайте Element, начинайте чат с `@telegrambot:ВАШ_ДОМЕН.ru` и пишите команду `login`. ---