[2026-09-28] eagle: family/plans/lidarr-taiga-deploy.md personal/tech/flaresolverr-taiga.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-28 15:13:48 +06:00
1 parent 87f719f46b
commit 2e6ab297b6
2 files changed
+116 -29

No files matched your search

+72 -12
View File
@@ -15,7 +15,7 @@
> [[family/projects/media-toolbox-taiga]], [[personal/tech/prowlarr-flaresolverr-cloudflare]],
> [[family/how-to/arr-stack-kraken]].
## ✅ РЕЗУЛЬТАТ (поиск «matrix» через `/api/v1/search`)
## ✅ РЕЗУЛЬТАТ (поиск «matrix» через `/api/v1/search`, замер 28 сен до капчи)
```
TOTAL 256
@@ -26,8 +26,13 @@ TOTAL 256
Byrutor 6
```
`GET /api/v1/health` → `[]`, `GET /api/v1/indexerstatus` → `[]`. **Ни одной ошибки,
ни одного карантина.** Было 3/6, стало 6/6 (по выдаче — 5 трекеров; Kinozal (M) — зеркало
⚠️ **Это исторический замер, не текущее состояние.** На момент ~15:20 RuTracker ещё логинился
и давал 50 результатов. Позже трекер стал отдавать **капчу** (см. раздел про RuTracker), и
RuTracker/Kinozal уходят в карантин волнами → в поиске сейчас меньше трекеров.
Смотреть `indexerstatus` перед тем, как повторять этот замер.
`GET /api/v1/health` → `[]`, `GET /api/v1/indexerstatus` → `[]` **на момент замера.**
Было 3/6, стало 6/6 (по выдаче — 5 трекеров; Kinozal (M) — зеркало
Kinozal с magnet-приоритетом, в общую выдачу дублируется).
## 🔑 ГЛАВНОЕ ОТКРЫТИЕ: FS-СЕССИЯ НЕ НАСЛЕДУЕТ `PROXY_URL`
@@ -319,24 +324,37 @@ mkdir -p /mnt/RED_2TB/storage/Downloads/radarr /mnt/RED_2TB/storage/Downloads/so
осталась, нужен `docker restart radarr sonarr` для перепроверки. См.
[[family/plans/lidarr-taiga-deploy]].
## ✅ ЗАКРЫТО 2026-09-28 (поздний вечер): Radarr/Sonarr/Lidarr вычищены
## ✅ ЗАКРЫТО 2026-09-28 (финал): Radarr/Sonarr/Lidarr вычищены
| Что | Итог |
|---|---|
| `docker restart radarr sonarr` | ✅ выполнен → `RemotePathMappingCheck` **ушла** |
| Карантин индексеров в Prowlarr (id 5, 6) | ✅ снят тестом полным объектом → `caps` 200 |
| `PUT /api/v3/indexer/N?forceSave=true` в Radarr/Sonarr | ✅ 202 |
| `docker restart radarr sonarr lidarr` | ✅ выполнен |
| `docker restart radarr sonarr lidarr` | ✅ выполнен (+ отдельный `docker restart lidarr` после правки bypass) |
| **health Radarr** | ✅ `[]` — чисто |
| **health Sonarr** | ✅ `[]` — чисто |
| health Lidarr | ⚠️ 1 warning `Kinozal (M)` — дефект `proxyBypassFilter`, см. питфолл ниже |
| health Lidarr | ✅ дефект `proxyBypassFilter` **закрыт**; остаток — общий карантин Prowlarr |
| Библиотека Lidarr | 1 артист (`Radiohead`), 23 релиза |
**Остаток (не блокирует):** RuTor в Radarr/Sonarr — `Query successful, but no results in the
configured categories`. Это **не блокировка и не карантин**: RuTor не отдаёт результаты в
категориях фильмов/сериалов. Проверено тестом полным объектом → caps отдаёт, карантина нет.
✅ **`proxyBypassFilter` расширен и рестарт выполнен.** Проверка после рестарта показала:
прежний симптом `Http request timed out` (запрос к Prowlarr уходил в прокси) **ушёл** —
на его месте осталась честная ошибка `429:TooManyRequests` от Prowlarr, потому что
Kinozal 5/6 снова ушли в карантин (из-за капчи/CF). То есть **дефект bypass закрыт**,
а остаток теперь общий со всей инфраструктурой и лечится снятием карантина в Prowlarr.
**Остаток (не блокирует, вне инфраструктуры):** RuTor в Radarr/Sonarr — `Query successful, but
no results in the configured categories`. Это **не блокировка и не карантин**: RuTor не отдаёт
результаты в категориях фильмов/сериалов. Проверено тестом полным объектом → caps отдаёт,
карантина нет. Оставляем как есть — дефект самого трекера.
⚠️ **Карантин имеет свойство возвращаться.** После снятия Kinozal 5/6 и RuTracker снова
оказались в карантине (карточки `disabledTill`), потому что их периодически тестирует
сам Prowlarr, и тест снова падает (капча RuTracker / CF kinozal). **Пока капча RuTracker
не пройдена, карантин будет возвращаться волнами** — это не регресс инфраструктуры.
- **Приёмка Alex в UI:** `https://prowlarr.mallexxx.duckdns.org` → Indexers → 6 зелёных;
`https://radarr.mallexxx.duckdns.org` / `sonarr` → System → Health пусто;
`https://lidarr.mallexxx.duckdns.org` → артист ищется.
## ✅ Lidarr ↔ SkyHook: решено 2026-09-28 (встроенный прокси, НЕ env)
@@ -361,9 +379,15 @@ compose-env + рестарт → всё тот же **403**. .NET-клиент S
# proxyType: "http"
# proxyHostname: "vless-proxy"
# proxyPort: 1081 # ← HTTP-порт, НЕ 1080 (SOCKS5)
# proxyBypassFilter: "localhost,127.0.0.1,vless-proxy"
# proxyBypassFilter: "localhost,127.0.0.1,vless-proxy,prowlarr,lidarr,radarr,sonarr,transmission,jellyfin,navidrome,caddy,gluetun,taiga"
# proxyBypassLocalAddresses: true
```
🔴 **`proxyBypassFilter` ОБЯЗАН содержать `prowlarr` и ВСЕ docker-имена стека.** Дефолт
(`localhost,127.0.0.1,vless-proxy`) не покрывает имя `prowlarr`, и тогда внутренний запрос
Lidarr → Prowlarr заворачивается в прокси и падает `Http request timed out`, хотя сам Prowlarr
отвечает 200. `proxyBypassLocalAddresses=true` на docker-имена **не действует** — только на
IP-литералы. Отсюда же следствие: после правки bypass нужен `docker restart lidarr`.
Скрипт правки bypass: `/tmp/lidarr_bypass.py` (GET → patch → PUT → 202 → read-back).
Скрипт: `/tmp/lidarr_set_proxy.py` (на хосте Тайги; там `python3` **есть**, `curl` — нет).
**Результат:** `lookup?term=radiohead` → 10 результатов; артист добавлен; поиск релизов →
@@ -389,8 +413,16 @@ docker exec radarr curl -s -X POST -H "X-Api-Key: $K" -H "Content-Type: applicat
--data-binary @/tmp/idx.json http://localhost:7878/api/v3/indexer/test
# → {} с http=200 = тест пройден; 400 + validationFailures = реальная ошибка
```
`{}` + **200** = успех (не 204, не «пусто»). `POST /indexer/testall` — тот же класс грабли,
он ещё и **подвешивает** Sonarr (>300 с) — гонять **по одному**.
`{}` + **200** = успех (не 204, не «пусто»).
🔴 **`POST /indexer/testall` НЕ РАБОТАЕТ в Radarr/Sonarr** — отдаёт **400**, а Sonarr ещё и
**подвешивается >300 с** (в Prowlarr `testall` тоже вреден: один Chrome → гонка, см. питфолл
про параллельный тест). **Единственный рабочий путь — `POST /indexer/test` по одному,
полным объектом.** Проверено на всех четырёх сервисах.
🔴 **`GET /indexerstatus` есть ТОЛЬКО в Prowlarr** — в Radarr/Sonarr эндпоинт → **404**.
Карантин в Radarr/Sonarr иначе: смотреть `health` (warning «Indexers unavailable due to
failures») и обнулять `PUT /api/v3/indexer/N?forceSave=true`.
## 🔴 ПИТФОЛЛ: `429` на `/N/api?t=caps` у Prowlarr = карантин → каскад во все arr
@@ -438,3 +470,31 @@ localhost,127.0.0.1,vless-proxy,prowlarr,lidarr,radarr,sonarr,transmission,jelly
⚠️ **Не переносить рецепт одного сервиса на другой.** `arr`-сервисы внешне похожи, но
механизм прокси у каждого свой; проверять фактическим запросом, а не по аналогии.
## История (финал сессии 2026-09-28)
- **~15:20** — RuTracker логинится (`len 251 792`), поиск «matrix» → 256 результатов,
health всех arr пуст. Замер зафиксирован в разделе «РЕЗУЛЬТАТ».
- **~16:00** — Lidarr: `/release?artistId=1` → **0**. Найдена причина — `proxyBypassFilter`
без `prowlarr`; внутренний запрос Lidarr→Prowlarr уходил в прокси и таймаутил.
Фикс: filter расширен до всех docker-имён (PUT `config/host` → **202**, read-back).
- **~16:10** — `docker restart lidarr`. Симптом-таймаут ушёл, но всплыла настоящая причина:
`429:TooManyRequests` от Prowlarr → Kinozal 5/6 снова в карантине.
- **~16:20** — карантин Kinozal/Kinozal(M) снят тестом полным объектом → `caps` 1/5/6 → 200.
Radarr/Sonarr: `PUT ?forceSave=true` → 202, `docker restart` → `health` **`[]`**.
- **~16:40** — RuTracker перестал логиниться: HTML сжался **251 KB → 13 KB**, в форме
найден `cap_code` + метка `Код:` → **трекер требует капчу**. Пара в Prowlarr
**не менялась** (сверено байт-в-байт с локальной копией) — диагноз «пароль неверен» ложный.
- **Итог:** инфраструктура Тайги чиста (Prowlarr/Radarr/Sonarr `health=[]`, Lidarr работает).
Открыты **2 дефекта на стороне самих трекеров**: капча RuTracker (нужен ручной вход Alex
браузером через тот же IP прокси) и категории RuTor (`no results in the configured
categories` — трекер не отдаёт фильмы/сериалы).
### Что делать при возврате симптома «индексера недоступны»
1. `GET /api/v1/indexerstatus` в Prowlarr → кто в карантине (`disabledTill`).
2. Снять карантин: `POST /api/v1/indexer/test` **полным объектом**, по одному (не `testall`).
3. `GET /N/api?t=caps` → должен быть **200** (429 = ещё в карантине).
4. В Radarr/Sonarr: `PUT /api/v3/indexer/N?forceSave=true` → 202, затем `docker restart`.
5. Если снова падает RuTracker — это **капча**, а не пароль: проверить логин
`request.post /forum/login.php` через FS и смотреть **размер** HTML (250 KB = ОК, 13 KB = капча).