2026-08-29 13:10:05 +04:00
2026-08-29 13:10:05 +04:00
2026-08-29 13:06:55 +04:00
2026-08-29 13:06:44 +04:00
2026-08-29 13:07:10 +04:00
2026-08-29 13:06:15 +04:00
2026-08-29 13:06:15 +04:00
2026-08-29 13:06:15 +04:00
2026-08-29 13:06:35 +04:00
2026-08-29 13:06:15 +04:00
2026-08-29 13:06:15 +04:00

Telegram WEB Proxy for a shared Docker-Caddy VPS

Однокомандная установка экспериментального Telegram WEB Proxy с закрытой минимальной панелью и нейтральным сайтом-заглушкой. Проект рассчитан на сервер, где публичные 80/443 уже обслуживает Caddy в Docker и на тех же портах нельзя запускать второй reverse proxy.

Целевая конфигурация этого репозитория:

  • домен WEB Proxy: gg.chardwork.ru;
  • существующий Caddy-контейнер: adguard-caddy;
  • Caddyfile: /opt/stacks/adguard-dns/Caddyfile;
  • существующий DoH: dns.chardwork.ru;
  • панель доступна по случайному пути и защищена логином и паролем;
  • главная страница выглядит как нейтральный визуальный журнал Gradient Garden.

Что устанавливается

  • официальный telegramdesktop/tproxy-server из зафиксированного commit;
  • локальный MTProxy backend;
  • WEB PANEL PROXY v2.0.2 из архива с проверкой SHA-256;
  • отдельные secrets и QR-коды для пользователей;
  • статический сайт без аналитики, внешних шрифтов и стороннего JavaScript;
  • приватные мосты между Docker-Caddy и сервисами на localhost;
  • лимиты памяти и CPU для новых служб;
  • резервная копия Caddyfile перед изменением.

Установщик не создаёт второй Caddy и не публикует внутренние порты 2398, 8080, 8081 и 8090 в интернет.

Требования

  • Ubuntu 22.04+ или Debian 12+ x86_64;
  • Docker и работающий Caddy-контейнер;
  • существующий Caddyfile, смонтированный в контейнер как /etc/caddy/Caddyfile;
  • свободные локальные порты 2398, 8080, 8081, 8090, 18080, 18090;
  • A-запись домена на IPv4 VPS;
  • минимум 1 ГБ RAM, комфортнее 2 ГБ RAM.

Перед запуском DNS-запись gg.chardwork.ru должна указывать на VPS. CDN или проксирование DNS-провайдера включать не нужно.

Установка одной командой

curl -fsSL https://git.chardb.ru/AlexChard/telegram-web-proxy/raw/branch/main/install-shared-vps.sh -o /tmp/install-telegram-web-proxy.sh && sudo bash /tmp/install-telegram-web-proxy.sh --domain gg.chardwork.ru --email YOUR_EMAIL

Скрипт запросит логин и пароль панели через терминал. Пароль не передаётся в аргументах и не сохраняется в shell history.

После установки адрес панели, основной secret и готовая Telegram-ссылка сохраняются на VPS:

/root/telegram-web-proxy-access.txt

Файл доступен только root.

Пользователи и ссылки

Один secret технически можно использовать на нескольких устройствах и раздать нескольким людям. Практичнее создавать в панели отдельный профиль каждому человеку: тогда доступ можно отозвать точечно, не меняя ссылки остальных.

Панель формирует ссылки вида:

tg://webproxy?server=gg.chardwork.ru&port=443&secret=SECRET

WEB Proxy предназначен прежде всего для поддерживаемых версий Telegram Desktop. Это экспериментальная технология, а не VPN для всего устройства.

Где хранятся данные

В Git находятся только исходники, шаблоны и публичный сайт. На VPS, вне репозитория, остаются:

  • /etc/web-proxy-panel/ — настройки установки и основной secret;
  • /var/lib/tproxy-panel/ — база панели и пользователи;
  • /etc/tproxy-server/ — конфигурация relay и профили;
  • /root/telegram-web-proxy-access.txt — приватная памятка владельца;
  • /opt/backups/telegram-web-proxy/ — резервные копии перед установкой.

Не добавляйте эти каталоги и файлы в Git без предварительного удаления секретов.

Проверка

systemctl status mtproxy tproxy-server tproxy-panel --no-pager
systemctl status tproxy-caddy-relay-bridge tproxy-caddy-panel-bridge --no-pager
curl -fsS http://127.0.0.1:8081/healthz
curl -fsS http://127.0.0.1:8081/readyz
curl -I https://gg.chardwork.ru/
curl -o /dev/null -w '%{http_code}\n' 'https://dns.chardwork.ru/dns-query?dns=AAABAAABAAAAAAAAB2V4YW1wbGUDY29tAAABAAE'

Последняя команда должна вернуть 200: это подтверждает, что существующий DoH продолжает работать.

Безопасность

  • Панель не публикуется отдельным портом — она доступна только через HTTPS и случайный URL.
  • Путь панели не заменяет хороший пароль.
  • Secrets создаются на VPS и не входят в репозиторий.
  • Загруженный upstream-архив проверяется по SHA-256.
  • Статические файлы сайта также проверяются по SHA-256.
  • При ошибке до завершения установки предыдущий Caddyfile автоматически восстанавливается.

Происхождение компонентов

Соблюдайте условия лицензий upstream-проектов и применимое законодательство вашего региона.

S
Description
Telegram WEB Proxy с минимальной панелью для VPS с существующим Docker-Caddy
Readme
91 KiB
Languages
Shell 56.2%
HTML 22.8%
CSS 18.3%
Python 2.7%