From 312a9cb8e005a662c7ed437839f94d0105f3dc01 Mon Sep 17 00:00:00 2001 From: host Date: Thu, 9 Apr 2026 20:54:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- мост Telegram.md | 209 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 мост Telegram.md diff --git a/мост Telegram.md b/мост Telegram.md new file mode 100644 index 0000000..df8870b --- /dev/null +++ b/мост Telegram.md @@ -0,0 +1,209 @@ + +--- + +# 🌉 Ультимативный гайд (Часть 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`. + +---