41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
# TDLib helper для `mtproxy_checkerd` (Node.js)
|
|
|
|
> Предпочтительный вариант — нативный **`tdlib_ping`** в корне репозитория (`cmd/tdlib_ping`, `libtdjson`, официальный JSON API TDLib). Этот каталог остаётся как **legacy** на Node + `prebuilt-tdlib`, если так удобнее в образе.
|
|
|
|
Внешний процесс: **TDLib** (`addProxy` + `pingProxy`), как в [telegram-mtproto-proxy-checker](https://github.com/AmirTahaMim/telegram-mtproto-proxy-checker). В stdout печатается **одна строка JSON** — её парсит `mtproxy_checkerd`.
|
|
|
|
## Установка
|
|
|
|
```bash
|
|
cd contrib/tdlib-ping
|
|
npm install
|
|
```
|
|
|
|
## Запуск вручную
|
|
|
|
```bash
|
|
node ping.js 'tg://proxy?server=HOST&port=PORT&secret=HEX'
|
|
```
|
|
|
|
Успех: строка `{"ok":true,"error":"","exit_code":0}` и код выхода `0`.
|
|
Ошибка секрета: `exit_code` `1`.
|
|
Прочие ошибки: `exit_code` `2` (или `4` при таймауте внутри скрипта).
|
|
|
|
## Docker
|
|
|
|
Базовый образ `mtproxy_checker` остаётся без Node/TDLib. Соберите свой слой: установите Node 18+, скопируйте `contrib/tdlib-ping`, выполните `npm install`, задайте:
|
|
|
|
```text
|
|
MTPROXY_TDLIB_HELPER=/usr/local/bin/mtproxy-tdlib-ping
|
|
MTPROXY_TDLIB_TIMEOUT=45s
|
|
```
|
|
|
|
Обёртка-скрипт `mtproxy-tdlib-ping`:
|
|
|
|
```sh
|
|
#!/bin/sh
|
|
exec node /opt/tdlib-ping/ping.js "$1"
|
|
```
|
|
|
|
TDLib проверка выполняется только при **`MTPROXY_PROBE=fast`** (или пусто).
|