[2026-09-28] eagle: family/plans/lidarr-taiga-deploy.md personal/tech/flaresolverr-taiga.md
This commit is contained in:
1 parent
36eccc0ac3
commit
c5d21f962a
2 files changed
+160
-24
No files matched your search
@@ -4,6 +4,10 @@
|
||||
**Статус:** ✅ **РАБОЧИЙ — приёмка закрыта 2026-09-28 (вечер).** SkyHook-блокер снят,
|
||||
проверено end-to-end: lookup → добавление артиста → поиск релизов. Бал: 0 артистов → 1,
|
||||
0 релизов → 23.
|
||||
**Добивка (2026-09-28, поздний вечер):** Radarr и Sonarr вычищены до `health: []`
|
||||
(`docker restart` + снятие карантина в Prowlarr + `?forceSave=true`). Найден и исправлен
|
||||
последний дефект Lidarr — **`proxyBypassFilter` без внутренних docker-имён** (см. питфолл).
|
||||
⏳ Осталось буквально одно: `docker restart lidarr` (апрув истёк).
|
||||
**Что было причиной и как починено (главный вывод сессии):**
|
||||
`api.lidarr.audio` действительно за Cloudflare, прямой запрос с IP Тайги → **403**, через
|
||||
`socks5h://vless-proxy:1080` → **200**. НО **env-переменные `HTTP_PROXY`/`HTTPS_PROXY` Lidarr
|
||||
@@ -39,8 +43,54 @@
|
||||
| **SkyHook (метаданные)** | ✅ `lookup?term=radiohead` → **10 результатов**, 15 397 байт реальных метаданных |
|
||||
| **Библиотека** | ✅ **1 артист** (`Radiohead`, id=1, monitored=false) |
|
||||
| **Поиск релизов** | ✅ `/release?artistId=1` → **23 раздачи** FLAC (seeders 3–7) через `NoNaMe Club (Prowlarr)` |
|
||||
| **Прокси-конфиг Lidarr** | ✅ `proxyEnabled=true`, `proxyType=http`, `vless-proxy:1081`, bypass `localhost,127.0.0.1,vless-proxy` |
|
||||
| health Radarr/Sonarr | ⚠️ `RemotePathMappingCheck` + indexer-warnings — см. «Остаток» ниже |
|
||||
| **Прокси-конфиг Lidarr** | ✅ `proxyEnabled=true`, `proxyType=http`, `vless-proxy:1081`, bypass **расширен** (см. питфолл ниже) |
|
||||
| health Radarr/Sonarr | ✅ **`[]` — ЧИСТО** (рестарт применён 2026-09-28, поздний вечер) |
|
||||
| **health Lidarr** | ⚠️ 1 warning `Kinozal (M)` — фикс `proxyBypassFilter` применён, нужен `docker restart lidarr` |
|
||||
|
||||
### 🔴 ПИТФОЛЛ (новый): `proxyBypassFilter` без `prowlarr` → таймауты Lidarr к Prowlarr
|
||||
|
||||
**Симптом:** в Lidarr `indexer/test` → `Unable to connect to indexer, indexer's server is
|
||||
unavailable. Http request timed out`, `/release?artistId=1` → **0 релизов**, хотя в Prowlarr
|
||||
тот же индексер отвечает **200**.
|
||||
|
||||
**Причина:** встроенный прокси Lidarr (`proxyEnabled=true`) заворачивал **внутренний** запрос
|
||||
`http://prowlarr:9696/N/api?t=caps` в HTTP-прокси: в `proxyBypassFilter` было только
|
||||
`localhost,127.0.0.1,vless-proxy`, а имя `prowlarr` там отсутствовало (и
|
||||
`proxyBypassLocalAddresses` на docker-имена **не действует** — только на IP-литералы).
|
||||
|
||||
**Фикс** — дописать все имена стека, затем `docker restart lidarr`:
|
||||
```
|
||||
localhost,127.0.0.1,vless-proxy,prowlarr,lidarr,radarr,sonarr,transmission,jellyfin,navidrome,caddy,gluetun,taiga
|
||||
```
|
||||
Скрипт `/tmp/lidarr_bypass.py` (GET → patch → PUT `/api/v1/config/host` → **202** → read-back).
|
||||
|
||||
> ⚠️ **Урок для любого arr-сервиса:** включая встроенный прокси — сразу прописать в bypass
|
||||
> **все** docker-имена стека. Иначе сервис уходит в прокси и к соседям, и симптом выглядит
|
||||
> как «сервер индексера недоступен».
|
||||
|
||||
### 🔴 ПИТФОЛЛ (новый): `indexer/test` требует ПОЛНЫЙ объект
|
||||
|
||||
`POST /api/v3/indexer/test` и `/api/v1/indexer/test` с телом `{"id":N}` → **400 всегда**.
|
||||
Нужно отправить **полный JSON индексера**:
|
||||
```bash
|
||||
docker exec radarr curl -s -H "X-Api-Key: $K" http://localhost:7878/api/v3/indexer > /tmp/i.json
|
||||
docker cp /tmp/i.json radarr:/tmp/i.json
|
||||
docker exec radarr curl -s -X POST -H "X-Api-Key: $K" -H "Content-Type: application/json" \
|
||||
--data-binary @/tmp/i.json http://localhost:7878/api/v3/indexer/test
|
||||
# {} + http=200 = OK; 400 = реальная ошибка (смотреть validationFailures)
|
||||
```
|
||||
`POST /indexer/testall` вдобавок **подвешивает** Sonarr (>300 с) — гонять по одному.
|
||||
|
||||
### 🔴 ПИТФОЛЛ (новый): `429` на `caps` у Prowlarr = карантин → каскад во все arr
|
||||
|
||||
`GET http://prowlarr:9696/5/api?t=caps` → **429**, пока индексер в карантине Prowlarr.
|
||||
Radarr/Sonarr/Lidarr показывают `[429:TooManyRequests]` — причина **не в них**.
|
||||
**Порядок:** снять карантин в Prowlarr (тест полным объектом) → `caps` 200 →
|
||||
`PUT /api/v3/indexer/N?forceSave=true` (**202**) в самом arr → `docker restart`.
|
||||
|
||||
### ⚠️ Остаток на конец сессии (не блокирует Lidarr)
|
||||
|
||||
1. ✅ **Пароль RuTracker — РАБОЧИЙ (первый диагноз «неверен» был ложным).**
|
||||
|
||||
### 🔴 ПИТФОЛЛ: env `HTTP_PROXY` НЕ работает в Lidarr — только встроенный конфиг
|
||||
|
||||
@@ -61,9 +111,9 @@ vs **через прокси** в одном ходе.
|
||||
⚠️ **Порт прокси:** `vless-proxy` слушает SOCKS5 на **1080** и HTTP на **1081**.
|
||||
Встроенный конфиг Lidarr (`proxyType=http`) требует **1081**; `1080` там не подойдёт.
|
||||
|
||||
### ⚠️ Остаток на конец сессии (не блокирует Lidarr)
|
||||
### ⚠️ Остаток (обновлён 2026-09-28, поздний вечер)
|
||||
|
||||
1. ✅ **Пароль RuTracker — РАБОЧИЙ (первый диагноз «неверен» был ложным).**
|
||||
1. ✅ **Пароль RuTracker — РАБОЧИЙ** (первый диагноз «неверен» был ложным).
|
||||
Проверено `request.post` на `/forum/login.php` через FlareSolverr: финальный URL
|
||||
остаётся `login.php`, но страница **251 792 байта** (полный форум), форма логина
|
||||
**не переоткрылась** → сессия установлена. Пара `mallexxx` / 8 символов проходит.
|
||||
@@ -71,19 +121,21 @@ vs **через прокси** в одном ходе.
|
||||
она есть и на залогиненной странице. Проверять по `final_url` + `len`.
|
||||
⚠️ Если Alex сменил пароль на самом rutracker.org — в Prowlarr лежит старый
|
||||
(проверено `len=8` через `/api/v1/indexer/1`), обновить в `Indexers → RuTracker`.
|
||||
2. ⏳ **Radarr/Sonarr ждут каталоги** `/storage/Downloads/radarr` и `/storage/Downloads/sonarr`
|
||||
(Transmission пишет плоско в `/mnt/storage/Downloads`). Каталоги **созданы**
|
||||
(`/mnt/RED_2TB/storage/Downloads/{radarr,sonarr}`, видны в контейнерах как `abc:abc`),
|
||||
но ошибка `RemotePathMappingCheck` в health **осталась** — Radarr/Sonarr кэшируют
|
||||
результат проверки, нужен `docker restart radarr sonarr`. ⏳ Не выполнен (апрув истёк).
|
||||
3. Indexer-warnings (`RuTor`, `Kinozal`, `Kinozal M`) в Radarr/Sonarr — их собственные
|
||||
копии индексеров в карантине, снимаются `POST /api/v3/indexer/testall`.
|
||||
⚠️ Эндпоинт отдаёт **400**, но это НЕ ошибка: тело содержит массив с `isValid` по каждому
|
||||
индексеру — парсить тело, а не HTTP-код. `GET /indexer/testall` → 404 (метод только POST).
|
||||
2. ✅ **Radarr/Sonarr — ЗАКРЫТО 2026-09-28 (поздний вечер).** Каталоги
|
||||
`/storage/Downloads/{radarr,sonarr}` созданы, `docker restart radarr sonarr` выполнен →
|
||||
`RemotePathMappingCheck` **ушла**, `health` обоих → `[]`.
|
||||
3. ✅ **Indexer-warnings в Radarr/Sonarr — ЗАКРЫТО.** Сняты: (а) тест карантинных индексе-
|
||||
ров в **Prowlarr** полным объектом → `caps` 200; (б) `PUT /api/v3/indexer/N?forceSave=true`
|
||||
в Radarr/Sonarr → **202**; (в) `docker restart radarr sonarr lidarr`.
|
||||
⚠️ `POST /api/v3/indexer/testall` **подвешивает** Sonarr (>300 с) и отдаёт 400 — гонять
|
||||
`POST /api/v3/indexer/test` **по одному, полным объектом** (`{"id":N}` → 400 всегда).
|
||||
⚠️ `/indexerstatus` есть **только в Prowlarr**; в Radarr/Sonarr → 404.
|
||||
4. RuTor в Radarr: «Query successful, but no results in the configured categories» —
|
||||
не блокировка, а категории (RuTor не фильтрует по категориям — см. питфолл в
|
||||
[[personal/tech/prowlarr-flaresolverr-cloudflare]]).
|
||||
4. **RuTor в Radarr/Sonarr:** «Query successful, but no results in the configured categories» —
|
||||
**не блокировка и не карантин**, RuTor не отдаёт результаты в категориях фильмов/сериалов.
|
||||
Проверено тестом полным объектом: caps 200, карантина нет. Оставляем как есть.
|
||||
5. ⏳ **1 warning в Lidarr (`Kinozal (M)`) — нужен `docker restart lidarr`.** Фикс
|
||||
`proxyBypassFilter` применён (PUT → 202, read-back подтверждён), но рестарт ушёл в апрув
|
||||
и **истёк**. Команда: `ssh truenas_admin@mallexxx.duckdns.org 'docker restart lidarr'`.
|
||||
|
||||
### Изменённые файлы
|
||||
|
||||
@@ -92,7 +144,7 @@ vs **через прокси** в одном ходе.
|
||||
| `/mnt/RED_2TB/docker/arr/docker-compose.yml` | + сервис `lidarr` (md5 `667f68f23b17a8c899c5a82a453fc754`); env-прокси добавлялся и **откачен** | `/home/truenas_admin/arr-compose.bak-20260927-125755`, `~/docker-compose.yml.bak-20260928-lidarr-proxy` |
|
||||
| `/mnt/RED_2TB/storage/Downloads/radarr` | каталог создан 2026-09-28 (Radarr ждал его) | — |
|
||||
| `/mnt/RED_2TB/storage/Downloads/sonarr` | каталог создан 2026-09-28 (Sonarr ждал его) | — |
|
||||
| Lidarr `config/host` (БД) | `proxyEnabled`/`proxyType`/`proxyHostname`/`proxyPort`/`proxyBypassFilter` | скрипт `/tmp/lidarr_set_proxy.py` идемпотентен |
|
||||
| Lidarr `config/host` (БД) | `proxyEnabled`/`proxyType`/`proxyHostname`/`proxyPort`/`proxyBypassFilter` (bypass **расширен** до всех docker-имён) | скрипты `/tmp/lidarr_set_proxy.py`, `/tmp/lidarr_bypass.py` идемпотентны |
|
||||
| `/mnt/RED_2TB/docker/caddy/Caddyfile` | + блок `lidarr.mallexxx.duckdns.org` (96 строк) | `/home/truenas_admin/Caddyfile.bak-*` |
|
||||
| `/mnt/RED_2TB/storage/Downloads/lidarr` | каталог создан | — |
|
||||
| `/mnt/RED_2TB/docker/arr/lidarr/` | конфиг + `lidarr.db` | — |
|
||||
@@ -322,3 +374,14 @@ Transmission (9091) ──download──┐ │
|
||||
(3) **Ложный диагноз «пароль RuTracker неверен» снят** — пара в Prowlarr логинится
|
||||
(`final_url`+`len=251792`, форма не переоткрылась). См. [[personal/tech/flaresolverr-taiga]].
|
||||
Остаток: `docker restart radarr sonarr` + `indexer/testall` (апрув истёк).
|
||||
- **2026-09-28 (поздний вечер, вторая добивка)** — Alex: «я поменял пароль в prowlarr» →
|
||||
пароль в порядке, ложный диагноз не подтвердился. Закрыто:
|
||||
(1) `docker restart radarr sonarr` → `RemotePathMappingCheck` ушла, health обоих `[]`;
|
||||
(2) карантин Kinozal/Kinozal(M) в **Prowlarr** снят тестом **полным объектом**
|
||||
(`{"id":N}` → 400 всегда); `caps` 1/5/6 → 200;
|
||||
(3) `PUT /api/v3/indexer/N?forceSave=true` в Radarr/Sonarr → 202;
|
||||
(4) `docker restart radarr sonarr lidarr`.
|
||||
**Новый дефект Lidarr:** `/release?artistId=1` → 0; причина — `proxyBypassFilter` без
|
||||
`prowlarr` (собственный прокси заворачивал внутренний запрос). Фикс применён (PUT 202,
|
||||
read-back), **рестарт Lidarr — апрув истёк** ⏳.
|
||||
Три новых питфолла — см. выше. RuTor: несовпадение категорий, не блок.
|
||||
Reference in new issue
Block a user