From ebe435842de0f7d8496cb6a0933baea757ab4f3c Mon Sep 17 00:00:00 2001 From: dttb Date: Tue, 28 Apr 2026 13:29:35 +0300 Subject: [PATCH] =?UTF-8?q?RustDesk:=20=D0=B7=D0=B0=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D1=87=D1=82=D0=BE=20NPM=20streams=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=BD=D1=8B=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=B2=D0=BD=D0=B5=20=D0=B8=20web-client=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit При попытке завести web-client (wss://remot.dttb.ru:21118) выяснилось что docker port для NPM публикует только 80/81/443. Streams 21115-21119 работают только внутри docker-сети — desktop-клиенты ходят на 10.0.0.244 напрямую через LAN/NetBird. Web-client требует rebuild NPM compose с ports. Co-Authored-By: Claude Opus 4.7 (1M context) --- projects/dttb/rustdesk.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/projects/dttb/rustdesk.md b/projects/dttb/rustdesk.md index c94268e..af266e0 100644 --- a/projects/dttb/rustdesk.md +++ b/projects/dttb/rustdesk.md @@ -140,8 +140,10 @@ tail -f /var/log/rustdesk-api/rustdesk-api.log - **MUST_LOGIN работает только в pro-бинаре hbbs.** OSS hbbs (как был до 2026-04-28) этот флаг игнорирует. См. [[../../decisions/2026-04-28-rustdesk-lejianwen-pro-migration]]. - **Admin REST API через curl без web-сессии не пускает.** Юзеров/группы создавать через https://remot.dttb.ru/_admin/. -- **Admin генерит `/webclient2/`-ссылки на peer'ы, а api отдаёт WebClient на `/webclient/`** — баг lejianwen 2.7. В NPM Proxy Host 14 (advanced_config) добавлен `return 301 /webclient/$1$is_args$args` для `/webclient2/...` → нажатие на peer в админке открывает Flutter web-client корректно. +- **Admin генерит `/webclient2/`-ссылки на peer'ы, а api отдаёт WebClient на `/webclient/`** — баг lejianwen 2.7. В NPM Proxy Host 14 (advanced_config) добавлен `return 301 /webclient/$1$is_args$args` для `/webclient2/...`. - **NPM streams API** — PUT не работает (валидатор `additional properties`). Только DELETE + POST. +- **NPM streams 21115-21119 не публикуются наружу docker-контейнера.** `docker port npm-app-1` показывает только 80/81/443. То есть `10.0.0.195:21118` снаружи **closed**, хотя внутри nginx слушает. Поэтому desktop RustDesk-клиенты подключаются напрямую на `10.0.0.244:21116` (LAN) или `100.70.191.161:21116` (NetBird), минуя NPM streams. Streams через NPM работают только если NPM был запущен через `docker compose up` с `ports: 21118:21118` и т.д. в compose-файле. +- **WebClient в браузере (https://remot.dttb.ru/webclient/) НЕ работает.** Flutter app старый (rustdesk-api 2.7), он жёстко строит `wss://:` = `wss://remot.dttb.ru:21118` и игнорирует `window.ws_host`. Чтобы заработал — нужно (a) опубликовать порты 21118/21119 в docker-mapping NPM через compose, (b) включить TLS termination в NPM stream (через `ssl_certificate` в custom `/data/nginx/custom/stream.conf`), (c) при необходимости открыть эти порты на роутере dttb.ru. Отложено как отдельная задача — desktop-клиент покрывает основные потребности. - **community-script может пытаться обновить пакеты** — `apt-mark hold` защищает hbbs/hbbr, но если запустить полный re-run скрипта community-scripts, могут быть сюрпризы. Не запускать без необходимости. - **`/proc/loadavg` в LXC = нагрузка хоста**, не контейнера ([[../../../knowledge-base/feedback_lxc_loadavg]] в memory).