| compose.yml | ||
| env.example | ||
| file_mtproto_proxy_qr.jgp | ||
| README.md | ||
mtproto-docker
digital resistance manifesto
Цифровое сопротивление сегодня — это не лозунги.
Это инфраструктура.
Свободный интернет не существует сам по себе.
Он держится на людях, которые запускают узлы, прокси, зеркала и сервисы связи.
Когда доступ к информации ограничивают —
мы создаём каналы обхода.
Когда платформы централизуются —
мы строим распределённые системы.
Когда контроль усиливается —
мы упрощаем, автоматизируем и дублируем.
Этот проект — маленькая часть такой инфраструктуры.
почему MTProto proxy
Telegram MTProto proxy:
- устойчив к блокировкам
- выглядит как обычный HTTPS-трафик
- прост в развёртывании
- не требует сложной поддержки
- масштабируется горизонтально
- официально поддерживается Telegram
Это не VPN.
Это специализированный транспорт для доступа к Telegram там, где он ограничен.
Он быстрый, лёгкий и практичный.
почему Docker
Docker даёт:
- воспроизводимость среды
- быстрый деплой
- изоляцию
- простое обновление
- переносимость между серверами
- минимальное администрирование
Контейнер — это одно назначение, один процесс, одна ответственность.
Это соответствует Unix-подходу.
почему GNU/Linux, KISS, Unix philosophy, Arch Way
Мы следуем инженерным принципам, а не моде.
GNU/Linux
- прозрачность
- контроль
- предсказуемость
- открытые стандарты
KISS (Keep It Simple, Stupid)
- минимум компонентов
- минимум магии
- минимум зависимостей
Философия Unix
- делай одну вещь хорошо
- всё — это файлы
- композиция вместо монолита
Arch Way
- простота архитектуры
- ручной контроль конфигурации
- понимание системы важнее автоматизации
Если система понятна — она управляемая.
Если управляемая — она устойчивая.
что это
mtproto-docker — минимальный reproducible стек для запуска Telegram MTProto proxy.
- официальный образ Telegram
- конфигурация через env
- персистентное хранилище ключей
- лог-ротация
- production-готовый compose
требования
- Docker
- Docker Compose
- открытый TCP порт 443
- публичный IP
быстрый запуск
cp env.example .env
nano .env
docker compose up -d
генерация SECRET
SECRET — это 16 случайных байт, закодированных в hex (32 символа).
Именно поэтому часто говорят: секрет должен быть длиной 32 hex-символа.
генерация через /dev/urandom
head -c 16 /dev/urandom | xxd -ps
Это создаст 32-символьный hex-секрет.
Пример вывода:
e3b0c44298fc1c149afbf4c8996fb924
Можно создать несколько ключей и затем указать их через запятую:
SECRET=key1,key2,key3
TLS camouflage секрет
Чтобы трафик выглядел как HTTPS, добавляется префикс dd.
Пример:
dd e3b0c44298fc1c149afbf4c8996fb924
ссылка подключения к прокси
После запуска прокси формируется ссылка подключения:
https://t.me/proxy?server=<IP>&port=443&secret=<SECRET>
пример
https://t.me/proxy?server=1.2.3.4&port=443&secret=e3b0c44298fc1c149afbf4c8996fb924
Открытие ссылки автоматически добавит прокси в Telegram.
QR код подключения
Эту же ссылку можно закодировать в QR.
Пользователь сканирует QR → Telegram автоматически предложит подключение.
Пример файла QR:
QR содержит ссылку подключения и может распространяться:
- на сайте
- в документации
- офлайн
- в печатных материалах
пример конфигурации клиента Telegram
Ручная настройка:
Settings → Advanced → Connection type → TCP Proxy
Ввести:
Server → IP сервера
Port → 443
Secret → ваш SECRET
официальный репозиторий проекта
Исходники и обновления:
https://forge.avallon.pw/avallon.labs/mtproto-docker
генерация QR (пример)
Если нужно сгенерировать QR локально:
qrencode -o file_mtproto_proxy_qr.jpg \
"https://t.me/proxy?server=1.2.3.4&port=443&secret=YOUR_SECRET"