[2026-09-28] eagle: personal/plans/flaresolverr-taiga-deploy.md personal/tech/flaresolverr-taiga.md
This commit is contained in:
1 parent
bf7787bcbd
commit
58d2ae71f8
2 files changed
+143
-41
No files matched your search
@@ -1,17 +1,20 @@
|
||||
# FlareSolverr на Тайге + обход блокировок индексеров — план/отчёт
|
||||
|
||||
> ✅ **СТАТУС 2026-09-29: ЗАДАЧА ЗАКРЫТА.** Prowlarr логинится на RuTracker автоматически,
|
||||
> поиск отдаёт CF-индексеры. Приёмка: `search?query=radiohead&indexerIds=1` → **50 результатов**.
|
||||
> `IndexerStatus` → `[]`, `health` → `[]`, 6/6 индексеров enabled.
|
||||
> 🔴 **Истинная причина «не логинится»:** в Prowlarr хранится пара `mallexxx` /
|
||||
> `m@n*w$uperP@$w0rD`, а все диагностические тесты шли **другим аккаунтом** (`keropjan_88`).
|
||||
> Капча RuTracker — **симптом неверного пароля**, а не блокер: с верной парой логин проходит
|
||||
> автоматически и без капчи. Кука авторизации — **`bb_session`** (не `bb_data`).
|
||||
> 🟡 **СТАТУС 2026-09-29 (конец сессии): НЕ ЗАКРЫТА — регресс.** Prowlarr → RuTracker снова даёт **0**
|
||||
> (`Invalid Credentials`, карантин `disabledTill 2026-09-28T15:47`). NoNaMe **47**, RuTor **33** — живы.
|
||||
> 🔴 **Причина найдена:** FS-сессия `prowlarr` **сломана** — отдаёт 251 KB **Chrome-страницы ошибки**
|
||||
> вместо форума и **пустые cookies**. Причём она **переживает `docker restart flaresolverr`**.
|
||||
> Диагноз «50 результатов» был поставлен на этой же сломанной сессии и оказался ложным:
|
||||
> `len≈250 KB` ≠ «залогинен». **Причина отравления сессии не установлена** — открытый вопрос.
|
||||
> 🔴 **Исправление (чеклист):** `sessions.destroy prowlarr` → `DELETE FROM IndexerStatus` SQL →
|
||||
> проверка **по cookies `bb_session`** и реальным `search`. Полный чеклист —
|
||||
> [[personal/tech/flaresolverr-taiga]] §«ЧЕКЛИСТ "не всё зелёное"».
|
||||
> 🔴 **Истинная причина исходного «не логинится»:** в Prowlarr хранится пара `mallexxx` /
|
||||
> `m@n*w$uperP@$$w0rD`, а все диагностические тесты шли **другим аккаунтом** (`keropjan_88`).
|
||||
> Капча RuTracker — **симптом неверного пароля**, а не блокер. Кука авторизации — **`bb_session`**.
|
||||
> 🔴 **Откат:** эксперимент с образом `flaresolverr-vnc` + noVNC (порт 6080, роут
|
||||
> `vnc.mallexxx.duckdns.org`, Caddy в `media_net`) **снесён как ненужный** — гипотеза
|
||||
> «капчу решает человек» оказалась ложной. FS вернулся на штатный образ.
|
||||
> ⚠️ **Пункты 6 и 7 в разделе «Остаток» ниже — УСТАРЕЛИ.** Логин RuTracker работает
|
||||
> (проверено: `search?indexerIds=1` → **50 результатов**); капча-гипотеза снята.
|
||||
> «капчу решает человек» оказалась ложной. FS вернулся на штатный образ. **Откат выполнен верно.**
|
||||
> 🔧 **Журнал отката** (что снесено, питфоллы `docker rm`/bind-mount/root-каталог) —
|
||||
> [[personal/tech/flaresolverr-taiga]] §«ЖУРНАЛ ОТКАТА».
|
||||
> Полный разбор и питфоллы — [[personal/tech/flaresolverr-taiga]].
|
||||
@@ -19,13 +22,11 @@
|
||||
> [[family/projects/media-toolbox-taiga]], [[family/how-to/arr-stack-kraken]],
|
||||
> [[personal/tech/prowlarr-flaresolverr-cloudflare]], [[family/plans/lidarr-taiga-deploy]].
|
||||
>
|
||||
> 🔴 **Главный питфолл:** FS-сессия `prowlarr`, созданная ДО появления `PROXY_URL`,
|
||||
> навсегда остаётся без прокси → `ERR_NAME_NOT_RESOLVED` → Prowlarr пишет ложное
|
||||
> «blocked by CloudFlare». Лечится `sessions.destroy` сессии `prowlarr` — пересоздаётся сама.
|
||||
> 🔴 **Второй питфолл:** `POST /indexer/test` карантин **НЕ снимает, а продлевает**.
|
||||
> Карантин живёт в таблице `IndexerStatus` и снимается **только SQL** (`DELETE FROM IndexerStatus`).
|
||||
> 🔴 **Порядок диагностики «Auth Failed»:** сначала сверить пару логин/пароль из
|
||||
> `prowlarr.db` (`SELECT Settings FROM Indexers WHERE Id=1`), и только потом всё остальное.
|
||||
> 🔴 **Питфолл №1:** FS-сессия может быть «отравлена» — `sessions.list` + `sessions.destroy`.
|
||||
> 🔴 **Питфолл №2:** `POST /indexer/test` карантин **НЕ снимает, а продлевает**.
|
||||
> Карантин живёт в `IndexerStatus` и снимается **только SQL** (`DELETE FROM IndexerStatus`).
|
||||
> 🔴 **Порядок диагностики «Auth Failed»:** (1) `sessions.list` → убить сессию; (2) cookies → есть ли
|
||||
> `bb_session`; (3) пара логин/пароль из `prowlarr.db`; (4) `IndexerStatus`. **Не по длине HTML!**
|
||||
|
||||
## ФАКТИЧЕСКОЕ СОСТОЯНИЕ (2026-09-28, после деплоя)
|
||||
|
||||
|
||||
@@ -1,13 +1,63 @@
|
||||
# FlareSolverr на Тайге + обход блокировок индексеров
|
||||
|
||||
> 🟢 **СОСТОЯНИЕ 2026-09-29: всё работает.** Prowlarr логинится в RuTracker сам, поиск отдаёт результаты.
|
||||
> Проверено: `search?query=radiohead` → RuTracker **50**, NoNaMe **47**, RuTor **33**.
|
||||
> `indexerstatus` → `[]`, `health` → `[]`.
|
||||
> 🟡 **СОСТОЯНИЕ 2026-09-29 (конец сессии): FS настроен верно, НО RuTracker снова упал в 0.**
|
||||
> Поиск: `search?query=radiohead` → RuTracker **0** ❌, NoNaMe **47** ✅, RuTor **33** ✅.
|
||||
> Причина падения найдена — **сломанная сессия `prowlarr`** (см. раздел «ДВЕ ЛОВУШКИ ДИАГНОСТИКИ»).
|
||||
> `IndexerStatus` содержит RuTracker (`disabledTill 2026-09-28T15:47`).
|
||||
> Health: Prowlarr 1 warning (RuTor), Radarr 1, Sonarr 2, Lidarr 2 — все про RuTracker/Kinozal/RuTor.
|
||||
> Контейнер `flaresolverr` — штатный образ, `PROXY_URL=socks5://vless-proxy:1080`, порт `8191`, сеть `media_net`,
|
||||
> `shm_size: 1gb`, `LOG_LEVEL=warning`. Compose: `/mnt/RED_2TB/docker/arr/docker-compose.yml`.
|
||||
> Связка: [[family/projects/media-toolbox-taiga]], [[family/plans/lidarr-taiga-deploy]],
|
||||
> [[personal/tech/prowlarr-flaresolverr-cloudflare]], [[family/how-to/arr-stack-kraken]].
|
||||
|
||||
## 🔴🔴 ДВЕ ЛОВУШКИ ДИАГНОСТИКИ (главное этой сессии)
|
||||
|
||||
Обе стоили часов и обе — про то, что **артефакт врёт**, если смотреть не то поле.
|
||||
|
||||
### Ловушка 1: `len≈250 KB` ≠ «залогинен». Это может быть Chrome-страница ОШИБКИ
|
||||
|
||||
Прошлый вывод «~250 KB = залогиненный форум» **опровергнут**. В сломанной сессии 251 792 байта —
|
||||
это **встроенная страница ошибки Chromium**, а не форум:
|
||||
|
||||
```html
|
||||
<html dir="ltr" lang="en"><head><meta name="color-scheme" content="light dark">
|
||||
<title>rutracker.org</title>
|
||||
<style>/* Copyright 2017 The Chromium Authors */</style>
|
||||
```
|
||||
|
||||
Диагностические маркеры в такой странице: `logged-in=0`, `logout=0`, `IS_GUEST=0/1` — **ни одного**,
|
||||
`cap_code=0`, `неверное/неактивное=0`, `challenge-platform=0`. То есть **судить по размеру нельзя**.
|
||||
|
||||
🔴 **Правильный признак «залогинен» — наличие cookies, а не длина HTML:**
|
||||
|
||||
| Проверка | Залогинен | Не залогинен |
|
||||
|---|---|---|
|
||||
| `solution.cookies` | есть **`bb_session`** ✅ | пусто / только `cf_clearance`+`bb_guid` |
|
||||
| Маркер в HTML | `IS_GUEST: !!'0'` | нет ни одного маркера |
|
||||
| `len` | **~105 KB** (свежая сессия) | 13 KB форма / 251 KB ошибка Chrome |
|
||||
|
||||
> ⚠️ **Всегда проверять `solution.cookies[].name` — наличие `bb_session` единственный надёжный признак.**
|
||||
> Замеры одной сессии: сессия `prowlarr` → `len=251792, cookies=[]` (ошибка);
|
||||
> свежая `cmp-fresh` → `len=105507, cookies=[bb_session, bb_ssl, bb_guid, cf_clearance]` ✅.
|
||||
|
||||
### Ловушка 2: сессия FS может быть «отравлена» и переживает рестарт FS
|
||||
|
||||
Сессия `prowlarr` залипла в сломанном Chrome: **любой** запрос через неё возвращает 251 KB
|
||||
страницы ошибки и **пустые cookies**. При этом:
|
||||
- `sessions.list` показывает её живой;
|
||||
- она **переживает `docker restart flaresolverr`** (наблюдалось: жила 2 часа через рестарты);
|
||||
- Prowlarr получает `Empty cookies returned` → `RuTracker Auth Failed` → карантин.
|
||||
|
||||
```
|
||||
сессия prowlarr (сломанная): POST login → len=251792, cookies=ПУСТЫЕ ❌
|
||||
свежая сессия: POST login → len=105507, cookies=[bb_session...] ✅
|
||||
```
|
||||
|
||||
🔴 **Диагностика обязана включать `sessions.list` + убийство сессии `prowlarr`.** Именно это
|
||||
снимает дефект — Prowlarr пересоздаёт сессию чистой при следующем запросе.
|
||||
|
||||
---
|
||||
|
||||
## 🔴 ПРИЧИНА ВСЕХ ПРОБЛЕМ: путаница аккаунтов (не капча, не прокси, не CF)
|
||||
|
||||
Долгая диагностика упиралась в «капчу RuTracker» — **причины такой не было**.
|
||||
@@ -18,7 +68,7 @@ Prowlarr: username = mallexxx password = m@n*w$uperP@$$w0rD
|
||||
```
|
||||
|
||||
RuTracker на неверный пароль отвечает **формой логина + капчей**. Отсюда ложный вывод «капча блокирует».
|
||||
С правильными данными Prowlarr логинится **без капчи**: `len=251 792`, `wrong_password=0`.
|
||||
С правильными данными Prowlarr логинится **без капчи**.
|
||||
|
||||
> 🔴 **Прежде чем диагностировать капчу/CF/прокси — сверить пару логин/пароль в Prowlarr:**
|
||||
> ```bash
|
||||
@@ -129,22 +179,31 @@ CF-индексеры получают **оба** тега: `tags=[1,2]`. RuTor/
|
||||
- `shm_size`/`sysctls` — в блок сервиса compose, не в `environment`.
|
||||
- Порт `8191` с Mac наружу **не проброшен** — скрипты запускать на хосте Тайги (`scp` + `ssh python3`).
|
||||
|
||||
## ⚠️ ПИТФОЛЛ: `Auth Failed` ≠ неверный пароль
|
||||
## ⚠️ ПИТФОЛЛ: `Auth Failed` — порядок диагностики (обновлён 2026-09-29)
|
||||
|
||||
`RuTracker Auth Failed` в Prowlarr **не доказывает** неверный пароль (см. главный раздел — причина была
|
||||
в чужом аккаунте). Диагностический порядок:
|
||||
1. `request.post` на `/forum/login.php` **с `session=prowlarr`** → судить по **длине** HTML.
|
||||
2. Если `~13 KB` — смотреть `IndexerStatus` в БД (может быть карантин, а не пароль).
|
||||
3. Только потом — вопрос к паре логин/пароль.
|
||||
`RuTracker Auth Failed` / `Invalid Credentials` в Prowlarr имеет **три разные причины**, и
|
||||
симптом у них одинаковый. Проверять **строго в этом порядке**:
|
||||
|
||||
🔴 **Признак «залогинен» — РАЗМЕР страницы, а не подстрока:**
|
||||
| `len` HTML | Что это |
|
||||
|---|---|
|
||||
| **~250 KB** | залогиненный форум ✅ |
|
||||
| **~13 KB** | форма логина вернулась ❌ |
|
||||
| # | Проверка | Признак причины |
|
||||
|---|---|---|
|
||||
| 1 | `sessions.list` → есть ли сессия `prowlarr`, и что она отдаёт | сессия «отравлена» → **убить её** |
|
||||
| 2 | `solution.cookies` после логина | нет **`bb_session`** → логин не прошёл |
|
||||
| 3 | `SELECT Settings FROM Indexers WHERE Id=1` в `prowlarr.db` | пара логин/пароль не та, что в тесте |
|
||||
| 4 | `IndexerStatus` в БД | есть запись → карантин (снимать SQL, не тестом) |
|
||||
|
||||
⚠️ Подстрока `login_username` присутствует **в обоих** случаях (HTML-шаблон + скрытая форма быстрого
|
||||
входа). По ней диагноз ставить нельзя — именно это давало ложное «пароль неверен».
|
||||
🔴 **НИКОГДА не судить о логине по длине HTML.** Ранее в этом доке было записано
|
||||
«~250 KB = залогинен, ~13 KB = форма» — **это неверно** (см. «ДВЕ ЛОВУШКИ ДИАГНОСТИКИ»):
|
||||
250 KB бывает страницей ошибки Chrome, а залогиненная свежая сессия даёт ~105 KB.
|
||||
|
||||
```bash
|
||||
# Правильная проверка логина — по cookies
|
||||
curl -s --max-time 220 -X POST http://localhost:8191/v1 -H "Content-Type: application/json" \
|
||||
-d '{"cmd":"request.post","url":"https://rutracker.org/forum/login.php",
|
||||
"session":"prowlarr",
|
||||
"postData":"login_username=<U>&login_password=<P>&login=%D0%92%D1%85%D0%BE%D0%B4",
|
||||
"maxTimeout":200000}' | jq -r '.solution.cookies[].name'
|
||||
# видим bb_session → залогинен. Пусто → сессия сломана, убить и повторить.
|
||||
```
|
||||
|
||||
## ⚠️ Кэш health в arr-сервисах
|
||||
|
||||
@@ -188,17 +247,56 @@ CF-индексеры получают **оба** тега: `tags=[1,2]`. RuTor/
|
||||
> ⚠️ У FS **нет** persistent-профиля Chrome: он живёт в контейнере и умирает при пересоздании.
|
||||
> Это **не проблема** — FS логинится в RuTracker при каждом старте без капчи.
|
||||
|
||||
## Состояние индексеров (2026-09-29)
|
||||
## Состояние индексеров (2026-09-29, конец сессии)
|
||||
|
||||
| id | Индексер | Теги | Поиск |
|
||||
|---|---|---|---|
|
||||
| 1 | RuTracker | `[1,2]` | ✅ 50 |
|
||||
| 1 | RuTracker | `[1,2]` | ❌ **0** — сессия `prowlarr` сломана, в карантине |
|
||||
| 2 | RuTor | `[1]` | ✅ 33 |
|
||||
| 3 | Byrutor | `[1]` | — |
|
||||
| 4 | NoNaMe Club | `[1,2]` | ✅ 47 |
|
||||
| 5 | Kinozal | `[1,2]` | ⚠️ CF, периодически в карантине |
|
||||
| 6 | Kinozal (M) | `[1,2]` | ⚠️ зеркало Kinozal (5) |
|
||||
|
||||
**Health по сервисам (2026-09-29):**
|
||||
```
|
||||
Prowlarr 1 warning RuTor (no results in categories — дефект трекера)
|
||||
Radarr 1 warning RuTracker unavailable > 6 hours
|
||||
Sonarr 2 warning RuTracker + RuTor
|
||||
Lidarr 2 warning RuTracker + Kinozal (M)
|
||||
```
|
||||
|
||||
## 🔴 ЧЕКЛИСТ «не всё зелёное» (восстановление RuTracker)
|
||||
|
||||
Когда RuTracker даёт 0, а FS жив — выполнить **в этом порядке**:
|
||||
|
||||
```bash
|
||||
# 1. Убить сессии FS (главный шаг — сессия переживает рестарт FS!)
|
||||
for S in prowlarr cmp-fresh; do
|
||||
curl -s --max-time 60 -X POST http://localhost:8191/v1 \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"cmd\":\"sessions.destroy\",\"session\":\"$S\"}" -o /dev/null
|
||||
done
|
||||
curl -s -X POST http://localhost:8191/v1 -H "Content-Type: application/json" \
|
||||
-d '{"cmd":"sessions.list"}' # → sessions: [] (ждём пусто)
|
||||
|
||||
# 2. Снять карантин SQL (тест его ПРОДЛЕВАЕТ, не снимает)
|
||||
DB=/mnt/RED_2TB/docker/arr/prowlarr/prowlarr.db
|
||||
docker stop prowlarr
|
||||
sqlite3 "$DB" "DELETE FROM IndexerStatus;"
|
||||
docker start prowlarr && sleep 20
|
||||
|
||||
# 3. ПРИЁМКА — реальный поиск (НЕ caps, НЕ health)
|
||||
PK=$(grep -o "<ApiKey>[^<]*" /mnt/RED_2TB/docker/arr/prowlarr/config.xml | cut -d">" -f2)
|
||||
curl -s --max-time 150 "http://localhost:9696/api/v1/search?query=radiohead&type=search&indexerIds=1" \
|
||||
-H "X-Api-Key: $PK" | python3 -c "import json,sys; print(len(json.load(sys.stdin)))"
|
||||
# ждём > 0
|
||||
```
|
||||
|
||||
> ⚠️ **Переживёт ли reboot:** `IndexerStatus` и сломанная сессия **переживают** — без шагов 1–2
|
||||
> после перезагрузки RuTracker останется в 0. Сессия живёт в памяти FS и **выдерживает
|
||||
> `docker restart flaresolverr`**.
|
||||
|
||||
## 🔴 Чего НЕ делать (проверено, не работает)
|
||||
|
||||
| Идея | Почему нет |
|
||||
@@ -264,10 +362,13 @@ docker network disconnect media_net caddy
|
||||
|
||||
```
|
||||
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
|
||||
indexerstatus: [] ← сразу после снятия карантина
|
||||
search: idx1=50 idx2=33 idx4=47 idx5=EMPTY idx6=0 ← НА МОМЕНТ ОТКАТА
|
||||
```
|
||||
⚠️ Через ~2 часа `idx1` упал в **0** — сессия `prowlarr` сломалась. `len=251792` тогда был принят
|
||||
за «залогиненный форум», но это **Chrome-страница ошибки**. См. «ДВЕ ЛОВУШКИ ДИАГНОСТИКИ».
|
||||
|
||||
**Вывод сессии:** FS корректно работает на штатном образе с `PROXY_URL`. Persistent-профиль,
|
||||
noVNC и капча-солвер — **не нужны**. Prowlarr логинится сам.
|
||||
**Вывод сессии:** откат выполнен верно (FS на штатном образе, `PROXY_URL`, noVNC/капча-солвер
|
||||
снесены как ненужные). Но **логин RuTracker нестабилен**: сессия FS `prowlarr` периодически
|
||||
«отравляется» и переживает рестарт FS — лечится `sessions.destroy` + снятие карантина SQL.
|
||||
**Причина отравления не установлена** — открытый вопрос для следующей сессии.
|
||||
Reference in new issue
Block a user