[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:
1 parent
47fa02d187
commit
3ae2f056d4
4 files changed
+122
-5
No files matched your search
@@ -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 []` не доказывают, что поиск работает. Разбивка по индексеру обязательна.
|
||||
|
||||
## Схема
|
||||
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user