Pull to refresh

Ситуация, знакомая многим: MAX ставить не хочется, а приходится. Работа, знакомые, школьные чаты — и вот у тебя на телефоне живёт приложение, которому ты не доверяешь, и которое работает в фоне тогда, когда ему захочется.

Мне хотелось чтобы MAX вообще не было ни на моём телефоне, ни в моём браузере — а переписка при этом приходила туда, где я и так сижу. В Telegram.

Так появился Telemax — мост между MAX и Telegram.

Что понадобится

Сервер — любая VPS на Ubuntu/Debian. Требования скромные, хватит самой дешёвой.

Свой Telegram-бот — создаётся за минуту в @BotFather, токен вставляется при настройке. Бот твой, живёт на твоём сервере, никакого общего чужого бота — данные идут только через твою инфраструктуру.

Telegram-группа с включёнными темами, куда ты добавишь этого бота админом. Она и станет твоим «окном» в MAX.

Номер MAX, на который мост авторизуется (в том числе если на аккаунте стоит пароль-2FA).

Про безопасность и доступ — два уровня:

Снаружи бот глухой. На любое сообщение или команду из другого чата (личка боту, чужая группа, куда его попытались добавить) он просто молчит. Работает только внутри твоей группы.

Внутри группы — разграничение. Обычные участники могут читать и писать (можно спокойно добавить людей в группу, чтобы вести общее обсуждение). А вот команды боту — только для админа.

Честная оговорка: тот, кого ты добавил в Telegram-группу, видит там все MAX-чаты, а не один. Так что доступ к самой группе — вещь чувствительная.

В ТГ это выглядит так:

Что уже работает в обе стороны:

— текст, фото, файлы, голосовые, видео и видео-кружки;
— стикеры — и статичные, и анимированные;
— геолокация и контакты;
— опросы — создание и голосование;
— удаление сообщений;
— реакции;
— пересылка;
— поиск контакта MAX по номеру или нику — и новая личка в один тап, не заходя в MAX;

уведомления о звонках (входящий / пропущенный / завершённый — текстом, без передачи звука: для аудио нужен WebRTC, это вне рамок).

Плюс мелочи для удобства: 🎛 пульт управления кнопками прямо в Telegram (пауза моста, бан надоевших чатов, обновление в один тап), авторизация в личке бота — код из SMS и пароль-2FA не попадают в группу. С версии 0.4 мост полностью headless: ни одного открытого порта наружу.

Из интересного: анимированные стикеры ТГ по умолчанию МАХ не принимает, поэтому они конвертируются в короткие видео - можно завалить максчатланинов своими стикерпаками )

Как развернуть

На чистом Ubuntu-сервере — одна команда:

curl -fsSL https://raw.githubusercontent.com/Trollobot/Telemax/main/install.sh | bash

Дальше скрипт сам поставит Docker, склонирует проект, сгенерирует ключи и по шагам проведёт настройку: попросит токен Telegram-бота (создаётся в @BotFather) и сам определит id твоей группы. Вход в MAX — команда /login в личке бота. Настройки потом меняются повторным запуском setup.sh — там теперь целое меню.

Честно про ограничения, чтобы никто не питал иллюзий:

Это не end-to-end. Переписка идёт через серверы MAX и Telegram — как и в любом обычном мессенджере. Мост ничего в этом плане не «шифрует поверх», он просто переносит сообщения. Переписка оседает на твоём сервере — в логах и в истории Telegram-группы. Безопасность этого сервера (доступ, шифрование диска) — на тебе.

Это неофициально. Проект не связан с MAX, работает поверх твоего собственного аккаунта на твой страх и риск.

Сыровато, но живо. Один разработчик — зато с момента этого поста вышло уже полтора десятка обновлений: от подписанных релизов до отказа от root в контейнере.

Специально открытый исходник — чтобы можно было посмотреть, что внутри, и гонять на своём сервере, а не на чьей-то инфраструктуре:

github.com/Trollobot/Telemax

Зы: на следующий день после поста Гит забанили — разбираюсь с поддержкой.

Проект от этого не остановился: живёт на собственном зеркале с HTTPS, а каждый релиз подписан ключом — обновления проверяют подпись, так что доверять транспорту и не требуется. Установка, пока GitHub в бане:

curl -fsSL https://zergont-gate.duckdns.org/install.sh | bash

Tags:
+22
Comments48

Articles