diff --git a/family/how-to/truenas-infrastructure.md b/family/how-to/truenas-infrastructure.md index 8ec5a294..6d4b5ae3 100755 --- a/family/how-to/truenas-infrastructure.md +++ b/family/how-to/truenas-infrastructure.md @@ -602,6 +602,7 @@ docker run --rm -v :/database filebrowser/filebrowser:latest config set | ~~cam.mallexxx.duckdns.org~~ | **❌ УБРАН из Caddyfile (2026-09-14).** Исторический upstream: `192.168.2.197:8090` — отдельный HTTP-MJPEG-сервис (`ustreamer`), контейнер утрачен при пересоздании пула. **Камера теперь на t610:** аддон **`a889bffc_go2rtc-hardware`** → RTSP H.264 `rtsp://192.168.2.176:8554/usb_camera_h264` → `camera.192_168_2_176` (зона Котельная, **WebRTC работает**, поворот `#rotate=90`). Домен не нужен. Подробно [[family/how-to/home-automation]] §5-кватер-И-6 | | **vpn-panel.mallexxx.duckdns.org** | **3x-ui панель :2053** (добавлен 2026-09-01) | | **vpn.mallexxx.duckdns.org** | **Xray VLESS-WS (путь /vless) → xray-admin:10095** (добавлен 2026-09-01) | +| **vnc.mallexxx.duckdns.org** | **noVNC FlareSolverr :6080** 🔒 basic_auth (user: admin) — ручное решение капчи RuTracker (2026-09-29). Caddy должен быть в сети `media_net` (`docker network connect media_net caddy`), иначе `flaresolverr:6080` не резолвится. Подробно [[personal/tech/flaresolverr-taiga]] | > ### ✅ SUBSCRIPTION-КАНАЛ (auto-обновление клиентов) — работает, проверено 2026-09-15 > diff --git a/personal/plans/flaresolverr-taiga-deploy.md b/personal/plans/flaresolverr-taiga-deploy.md index b6ecdb2d..2404c0e7 100755 --- a/personal/plans/flaresolverr-taiga-deploy.md +++ b/personal/plans/flaresolverr-taiga-deploy.md @@ -14,6 +14,11 @@ > **ручной вход в Chrome внутри FS**. Собран образ (Xvfb+fluxbox+x11vnc+noVNC), профиль > Chromium на persistent volume, noVNC на порту **6080**. Осталось: вход Alex → проверка > выживания cookies → уведомление в ТГ (Остаток п.2–4). +> 🔴 **ДОСТУП К noVNC (2026-09-29): порт 6080 наружу НЕ проброшен** (роутер недоступен). +> Два пути: **SSH-туннель** `ssh -L 6080:truenas_admin@mallexxx.duckdns.org:6080 -N truenas_admin@mallexxx.duckdns.org` +> → `http://localhost:6080/vnc.html`, либо **Caddy-роут** `vnc.mallexxx.duckdns.org` +> (блок добавлен в Caddyfile, `basic_auth`, нужен `docker network connect media_net caddy`). +> Бэкап Caddyfile: `~truenas_admin/Caddyfile.bak-20260928-novnc`. Детали — [[personal/tech/flaresolverr-taiga]]. > Полный разбор, все питфоллы и команды — [[personal/tech/flaresolverr-taiga]]. > Связано: [[personal/plans/lidarr-taiga-and-indexer-unblock]], > [[family/projects/media-toolbox-taiga]], [[family/how-to/arr-stack-kraken]], diff --git a/personal/tech/flaresolverr-taiga.md b/personal/tech/flaresolverr-taiga.md index 950dfb9c..89c96741 100755 --- a/personal/tech/flaresolverr-taiga.md +++ b/personal/tech/flaresolverr-taiga.md @@ -1059,3 +1059,67 @@ localhost,127.0.0.1,vless-proxy,prowlarr,lidarr,radarr,sonarr,transmission,jelly - **Остаток:** ручной вход Alex в Chrome через noVNC → проверить, что cookies (`bb_data`) легли в профиль и переживают рестарт → шаг 3 (уведомление в ТГ). +--- + +## 🔴 ПИТФОЛЛ: порт `6080` НЕ доступен снаружи — нужен роут в Caddy (2026-09-29) + +**Проблема.** noVNC слушает `0.0.0.0:6080` внутри docker, но **наружу через NAT роутера порт +6080 не проброшен** (и проброшен быть не может — доступа к роутеру нет). Alex ткнул в это +прямо: «а ты его пробросил блядь?!». Открытие `http://mallexxx.duckdns.org:6080/vnc.html` +снаружи **не сработает**. + +**Решение — роут в Caddy** (тот же приём, что для `prowlarr`/`lidarr`/`jellyfin`): HTTPS-домен +через уже проброшенные 8088/8443, отдельный порт наружу не нужен. + +### 🔴 ПИТФОЛЛ: Caddy НЕ в сети `media_net` → `flaresolverr:6080` не резолвится + +Базовое состояние Caddy: сети `caddy_default` + `transmission_default`. Имени `flaresolverr` +в них **нет** — `reverse_proxy flaresolverr:6080` упадёт на DNS. + +**Фикс (обратимый, без правки compose):** +```bash +ssh truenas_admin@mallexxx.duckdns.org 'docker network connect media_net caddy' +# caddy_default=172.16.1.11 media_net=172.16.17.9 transmission_default=172.16.12.3 +``` +Альтернатива — указать IP `172.16.17.8`, но он **меняется** при пересоздании контейнера; +подключение к сети устойчивее (Caddy резолвит по имени). + +### Caddyfile — добавленный блок + +Файл `/mnt/RED_2TB/docker/caddy/Caddyfile` (владелец `truenas_admin`, сам каталог — `root`, +поэтому бэкап кладём в домашний каталог, не рядом): + +``` +vnc.mallexxx.duckdns.org { + basic_auth { + admin $2a$14$.1IkoISmRXHCFi1KZld2ROa7E93cVZFNO3vomCVZYruLhO1l0hB1i + } + reverse_proxy flaresolverr:6080 +} +``` + +> 🔴 `basic_auth` **обязателен**: noVNC без пароля = открытый рабочий стол с залогиненным +> RuTracker в интернете. Хэш тот же, что у `books`/`library` (`books-admin` → логин `admin`). + +**Бэкап:** `~truenas_admin/Caddyfile.bak-20260928-novnc` (2124 B). +⚠️ `cp Caddyfile.bak-...` рядом с оригиналом → **Permission denied** (каталог root). +Копировать в `~`. + +### Два способа доступа (оба без правок роутера) + +| Способ | Команда / адрес | Когда | +|---|---|---| +| **SSH-туннель** (мгновенно) | `ssh -L 6080:truenas_admin@mallexxx.duckdns.org:6080 -N truenas_admin@mallexxx.duckdns.org` → `http://localhost:6080/vnc.html` | прямо сейчас, ничего не меняя | +| **Caddy-роут** (постоянно) | `https://vnc.mallexxx.duckdns.org` (basic_auth) | постоянное решение | + +### Порядок правки Caddy (проверенный) + +1. Бэкап: `cp /mnt/RED_2TB/docker/caddy/Caddyfile ~/Caddyfile.bak-<дата>-<тег>` +2. `docker network connect media_net caddy` (**один раз**, до reload) +3. Правка Caddyfile **локально** (не sed на сервере) → `scp` +4. `docker exec caddy caddy reload --config /etc/caddy/Caddyfile` + +⚠️ DNS-запись `vnc.mallexxx.duckdns.org` — duckdns требует добавить поддомен отдельно +(или использовать wildcard `*.mallexxx.duckdns.org`, если он уже настроен на 8088/8443). + +