# 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-провайдера включать не нужно. ## Установка одной командой ```bash 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: ```text /root/telegram-web-proxy-access.txt ``` Файл доступен только `root`. ## Пользователи и ссылки Один secret технически можно использовать на нескольких устройствах и раздать нескольким людям. Практичнее создавать в панели отдельный профиль каждому человеку: тогда доступ можно отозвать точечно, не меняя ссылки остальных. Панель формирует ссылки вида: ```text 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 без предварительного удаления секретов. ## Проверка ```bash 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 автоматически восстанавливается. ## Происхождение компонентов - [Telegram Desktop tproxy-server](https://github.com/telegramdesktop/tproxy-server) - [WEB PANEL PROXY](https://github.com/POLESNIESOVETI12/web-panel-proxy) Соблюдайте условия лицензий upstream-проектов и применимое законодательство вашего региона.