RustDesk: задокументировать что NPM streams недоступны извне и web-client отложен

При попытке завести 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) <noreply@anthropic.com>
This commit is contained in:
dttb
2026-04-28 13:29:35 +03:00
parent 5f40c26718
commit ebe435842d

View File

@@ -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]]. - **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 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 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://<id-host>:<id-port+2>` = `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, могут быть сюрпризы. Не запускать без необходимости. - **community-script может пытаться обновить пакеты** — `apt-mark hold` защищает hbbs/hbbr, но если запустить полный re-run скрипта community-scripts, могут быть сюрпризы. Не запускать без необходимости.
- **`/proc/loadavg` в LXC = нагрузка хоста**, не контейнера ([[../../../knowledge-base/feedback_lxc_loadavg]] в memory). - **`/proc/loadavg` в LXC = нагрузка хоста**, не контейнера ([[../../../knowledge-base/feedback_lxc_loadavg]] в memory).