mirror of
https://github.com/by-sonic/tglock.git
synced 2026-08-02 16:45:50 +03:00
docs: инструкция по Cloudflare Worker + скрипт, снять флаг пререлиза (#29)
Резервный маршрут через Worker был в коде с 2.0, но воспользоваться им никто не мог: в ARCHITECTURE_V2.md описан только контракт эндпоинта — это спецификация для того, кто будет писать воркер, а не руководство. Ни скрипта, ни шагов в репозитории не было. Поэтому люди, у которых легли все обычные маршруты, писали «не работает» вместо того, чтобы включить запасной выход. Добавлено: - worker/tglock-worker.js — готовый скрипт. Проверяет путь и upgrade, подтверждает подпротокол binary (без этого клиент рвёт рукопожатие), соединяется только с семью адресами Telegram, которые запрашивает TGLock, и поддерживает необязательный TGLOCK_TOKEN. Без списка адресов воркер стал бы открытым TCP-прокси для любого, кто узнает его адрес. - docs/CLOUDFLARE_WORKER.md — когда это нужно и когда нет (таблица «что видно в приложении → нужен ли Worker»), установка через веб-интерфейс, проверка живости, подключение в GUI и через --worker, ограничение доступа, контракт для своих реализаций. - Ссылки из README: в FAQ про блокировку web.telegram.org и в блок docs. Контракт закреплён тестами, чтобы документация не разошлась с кодом: - worker_path вынесен в функцию, из неё же строятся боевые маршруты; - documented_worker_contract_matches_the_requested_path сверяет формат пути; - worker_allowlist_covers_every_address_a_route_can_ask_for падает, если в маршрутах появится адрес, которого нет в скрипте воркера; - connects_through_the_documented_worker_contract поднимает сервер, ведущий себя ровно по документации, и проверяет что туннель работает в обе стороны и что запрошен именно документированный URI. Чего тесты не проверяют: развёрнутый воркер в самом Cloudflare. Это указано и в самой инструкции. Отдельно: снят флаг prerelease в release.yml. До правки /releases/latest отдавал v2.0.0-beta.1, то есть кнопка «Скачать» в README вела на сборку без CLI и без фикса рендера. Существующий релиз v2.0.0-beta.2 помечен как latest вручную. Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>
This commit is contained in:
+12
-5
@@ -14,11 +14,18 @@
|
||||
> больше нет, и правил системный DNS. Взято разделение GUI/CLI и произвольный
|
||||
> bind-адрес; DNS-менеджмент и проверка root отброшены как ненужные.
|
||||
> - #12 закрыт: относился к шрифту старого egui-интерфейса.
|
||||
> - #10 и #17 **оставлены открытыми осознанно.** Появился headless `tglock-cli`,
|
||||
> который на таких машинах работает, но сам GUI по-прежнему не создаёт окно
|
||||
> без 3D-ускорения. Это обход, а не исправление.
|
||||
> - #9 (Android) остаётся в backlog без сроков, #21 ждёт подтверждения на
|
||||
> пересобранной сборке macOS.
|
||||
> - #10 и #17 закрыты выпуском `v2.0.0-beta.2`: GUI перед стартом просит у
|
||||
> WebView программный рендер. Проверить это на машине без 3D-ускорения
|
||||
> возможности не было, поэтому закрыто как «исправление выпущено», а не
|
||||
> «исправлено» — репортерам предложено переоткрыть, если проблема осталась.
|
||||
> Независимо от WebView работает `tglock-cli`.
|
||||
> - #21 закрыт: репорт относился к сборке macOS, которой больше нет, в
|
||||
> `v2.0.0-beta.2` она пересобрана универсальным `.dmg`.
|
||||
> - #9 (Android) остаётся единственным открытым — backlog без сроков.
|
||||
>
|
||||
> Единственная претензия из публичного обсуждения, которую нельзя закрыть
|
||||
> кодом: инсталлятор не подписан, из-за чего часть антивирусов на него
|
||||
> реагирует. Требует покупки сертификата.
|
||||
>
|
||||
> Дополнительно исправлено то, чего в issues не было: коллизия MTProto-init с
|
||||
> байтом `0x05` (одно соединение из 256 уходило в SOCKS5-ветку и умирало),
|
||||
|
||||
Reference in New Issue
Block a user