No description
Find a file
2026-02-12 22:39:46 +07:00
compose.yml Initial commit 2026-02-12 20:07:21 +07:00
env.example Initial commit 2026-02-12 20:07:21 +07:00
file_mtproto_proxy_qr.jgp add qrencoded example link 2026-02-12 22:37:09 +07:00
README.md fix links in README.md 2026-02-12 22:39:46 +07:00

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.jpg

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"