[2026-09-28] eagle: family/how-to/truenas-infrastructure.md personal/plans/flaresolverr-taiga-deploy.md personal/tech/flaresolverr-taiga.md personal/tech/prowlarr-flaresolverr-cloudflare.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-28 20:28:59 +06:00
1 parent 47fa02d187
commit 3ae2f056d4
4 files changed
+122 -5

No files matched your search

+59
View File
@@ -212,3 +212,62 @@ CF-индексеры получают **оба** тега: `tags=[1,2]`. RuTor/
> 🔴 **Не строить план на посылке «на Кра́кене работает».** На 2026-09-29 у Кра́кена в БД
> тот же карантин `EscalationLevel=9` (RuTracker/Kinozal/Kinozal M, с 27 сен) и **нет** капча-солвера.
> «Как на Кра́кене» ≠ «починить».
## 📋 ЖУРНАЛ ОТКАТА (2026-09-29) — что снесено и как вернуть
Эксперимент «ручная капча через VNC» построен под ложную гипотезу и полностью откачен.
Записано, чтобы не воссоздавать и чтобы понимать, что удалено.
| Артефакт | Было | Стало |
|---|---|---|
| Compose `image:` | `flaresolverr-vnc:latest` (свой образ) | `ghcr.io/flaresolverr/flaresolverr:latest` |
| Compose порт | `8191:8191` + `6080:6080` | только `8191:8191` |
| Compose volume | `/mnt/RED_2TB/docker/arr/flaresolverr-config:/config` | убран |
| Каталог сборки | `/mnt/RED_2TB/docker/arr/fs-vnc/{Dockerfile,supervisord.conf,entrypoint-vnc.sh}` | удалён |
| Образ | `flaresolverr-vnc:latest` | удалён (`docker rmi`) |
| Отладочный контейнер | `fs-debug` | удалён (`docker rm -f`) |
| Caddyfile | блок `vnc.mallexxx.duckdns.org` (basic_auth + reverse_proxy) | блок убран, config валиден |
| Сеть Caddy | подключён к `media_net` | `docker network disconnect media_net caddy` |
| Каталог профиля | `/mnt/RED_2TB/docker/arr/flaresolverr-config/` | удалён |
### ⚠️ ПИТФОЛЛЫ отката (стоили времени)
1. **`docker compose up -d --force-recreate` падает**, если bind-source уже удалён:
`invalid mount config for type "bind": bind source path does not exist`.
Контейнер держит старый маунт в памяти → нужно **`docker rm -f flaresolverr`**, потом up.
2. **Каталог профиля от root не удаляется по ssh-пользователем** — `Operation not permitted`
(внутренний `chromium/` создан root'ом внутри контейнера). Обход:
```bash
docker run --rm -v /mnt/RED_2TB/docker/arr:/work alpine sh -c "rm -rf /work/flaresolverr-config"
```
3. **`docker rmi` конфликтует**, пока образ держит любой контейнер (`fs-debug` из отладки):
`conflict: unable to remove repository reference (must force) - container ... is using`.
Сначала `docker rm -f fs-debug`, потом `rmi`.
4. **Имя каталога бэкапа рядом с оригиналом** → `Permission denied` (каталог root) — бэкап класть в `~`.
(Здесь не применялось: Alex запретил лишние бэкапы.)
### Порядок отката, который сработал
```bash
# 1. Caddyfile — убрать блок vnc, залить, проверить, перезагрузить
scp Caddyfile.clean truenas_admin@...:/mnt/RED_2TB/docker/caddy/Caddyfile
docker exec caddy caddy validate --config /etc/caddy/Caddyfile # → Valid configuration
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
docker network disconnect media_net caddy
# 2. compose — вернуть штатный образ, убрать порт 6080 и volume
# править ЛОКАЛЬНО → scp → docker compose config -q → up -d
# 3. снести образ/каталог/контейнеры (см. питфоллы выше)
# 4. ПРИЁМКА: логин + поиск (не caps!)
```
### ✅ Приёмка после отката (факты)
```
API FS: {"status":"ok","version":"3.5.2"}
Логин (session=prowlarr): len=251792 (залогиненный форум ~250KB), wrong_password=0
indexerstatus: []
search: idx1=50 idx2=33 idx4=47 idx5=EMPTY idx6=0
```
**Вывод сессии:** FS корректно работает на штатном образе с `PROXY_URL`. Persistent-профиль,
noVNC и капча-солвер — **не нужны**. Prowlarr логинится сам.
@@ -1,7 +1,7 @@
---
title: Prowlarr FlareSolverr — Cloudflare-обход и починка индексеров
created: '2026-09-20'
updated: '2026-09-28'
updated: '2026-09-29'
type: tech
namespace: personal
tags: ["prowlarr", "flaresolverr", "cloudflare", "rutracker", "kinozal", "torrent", "arr", "kraken", "taiga", "infra"]
@@ -17,6 +17,61 @@ related:
Зеркало ключевых питфоллов скилла `torrent-agent-pipeline` (§ Питфоллы).
Контекст: 2026-09-20, Kraken. RuTracker / Kinozal / Kinozal (M) были «красными» в Prowlarr.
## 🔴🔴 2026-09-29: «Auth Failed» = СНАЧАЛА ДАННЫЕ, ПОТОМ ИНФРАСТРУКТУРА
**Самый дорогой урок.** Долгая диагностика «капча RuTracker», собран образ с noVNC — всё зря.
Причина: **диагностические тесты шли НЕ ТЕМ аккаунтом.**
```
Prowlarr хранит: username = mallexxx password = m@n*w$uperP@$$w0rD
Тесты шли: username = keropjan_88 password = I70aj7Igpr
```
RuTracker на неверный пароль отвечает **формой логина + капчей** — отсюда ложный вывод
«трекер требует капчу от человека». С верной парой логин проходит **автоматически, без капчи**.
🔴 **ПЕРВЫЙ ШАГ при `Auth Failed` — сверить пару из БД, до любых гипотез:**
```bash
DB=/mnt/RED_2TB/docker/arr/prowlarr/prowlarr.db # Кра́кен: /srv/*/docker/prowlarr/config/prowlarr.db
python3 -c "
import json,sqlite3,shutil
shutil.copy('$DB','/tmp/o.db')
c=sqlite3.connect('/tmp/o.db')
for r in c.execute('SELECT Name,Settings FROM Indexers'):
s=json.loads(r[1])
print(r[0], {k:v for k,v in s.items() if 'user' in k.lower() or 'pass' in k.lower()})
"
```
Тестировать надо **ровно той парой**, что лежит в Prowlarr. Иначе тест измеряет не то.
### Признак «залогинен» — РАЗМЕР HTML, не подстрока
| `len` HTML | Что это |
|---|---|
| **~250 KB** | залогиненный форум ✅ |
| **~13 KB** | форма логина вернулась ❌ |
⚠️ Подстрока `login_username` есть **в обоих** случаях (HTML-шаблон + скрытая форма быстрого
входа) — по ней диагноз ставить НЕЛЬЗЯ.
Кука авторизации RuTracker — **`bb_session`** (не `bb_data`; в сессии также `cf_clearance`,
`bb_guid`, `bb_ssl`). Отсутствие `bb_session` = логина нет.
### Что НЕ работает (проверено, не повторять)
| Идея | Почему нет |
|---|---|
| Капча-солвер (`CAPTCHA_SOLVER`) | **Официально non-functional** (DeepWiki FS, issue #1452 закрыт). Адаптеры удалены из образа |
| Вписать cookies в Prowlarr вручную | Индексер принимает только `username`/`password` — поля для cookie нет |
| noVNC + свой образ FS для ручного входа | Строилось под ложную гипотезу. **Снесено 2026-09-29.** Журнал отката — [[personal/tech/flaresolverr-taiga]] |
| Свой браузер через 3x-ui «по тому же туннелю» | `vless-proxy` — **клиент** xray, не сервер; `cf_clearance` привязан к IP+UA+TLS-fingerprint |
| Persistent-профиль Chrome у FS | Не решает ничего: FS логинится сам при каждом старте |
> 🔴 **Не строить план на посылке «на Кра́кене работает».** На 2026-09-29 у Кра́кена в БД
> тот же карантин `EscalationLevel=9` (RuTracker/Kinozal/Kinozal M, с 27 сен) и **нет** капча-солвера.
> 🔴 **Приёмка — `search`, а НЕ `caps` и НЕ `health`.** `caps` 200 + пустой `indexerstatus` +
> `health []` не доказывают, что поиск работает. Разбивка по индексеру обязательна.
## Схема
```