[2026-09-29] eagle: family/how-to/arr-stack-taiga.md personal/tech/flaresolverr-taiga.md
This commit is contained in:
1 parent
97cd48e13c
commit
f7914b6a71
2 files changed
+61
-2
No files matched your search
@@ -24,6 +24,17 @@ Prowlarr
|
||||
└─ RuTracker
|
||||
```
|
||||
|
||||
Внешний egress для arr закреплён на маршруте 3x-ui:
|
||||
|
||||
```text
|
||||
vless-space
|
||||
└─ space-master: sub1-sweden-yt
|
||||
└─ space-failover: sub1-poland-yt
|
||||
└─ space-auto: текущий leastLoad по подписке
|
||||
```
|
||||
|
||||
Это важно для Cloudflare: FlareSolverr и последующий запрос Prowlarr должны выходить через один IP. Общий `leastLoad` по всем профилям без pinned master ломает cookie handoff.
|
||||
|
||||
Файлы на TrueNAS:
|
||||
|
||||
```text
|
||||
@@ -43,7 +54,9 @@ Entrypoint при каждом старте:
|
||||
3. создаёт `prowlarr` с `socks5://vless-proxy:1080`;
|
||||
4. читает credentials RuTracker из `prowlarr.db` через SQLite URI `mode=ro&immutable=1`;
|
||||
5. делает pre-login через FlareSolverr;
|
||||
6. оставляет основной процесс FlareSolverr работать.
|
||||
6. оставляет основной процесс FlareSolverr работать;
|
||||
7. проверяет egress-IP раз в минуту и login-состояние RuTracker раз в пять минут;
|
||||
8. при смене IP или потере login-состояния пересоздаёт session `prowlarr` и выполняет login заново.
|
||||
|
||||
SQLite монтируется read-only. Обычный `sqlite3.connect('/prowlarr.db')` на read-only mount может упасть с `unable to open database file`; нужен именно `immutable=1`.
|
||||
|
||||
@@ -72,6 +85,26 @@ RuTracker tags = [1,2]
|
||||
FlareSolverr requestTimeout = 180 seconds
|
||||
```
|
||||
|
||||
## 3x-ui: master и failover
|
||||
|
||||
Шаблон находится в базе 3x-ui:
|
||||
|
||||
```text
|
||||
/mnt/RED_2TB/docker/xray-admin/x-ui.db
|
||||
```
|
||||
|
||||
Текущая цепочка:
|
||||
|
||||
```text
|
||||
space-master selector=[sub1-sweden-yt] fallback=space-failover
|
||||
space-failover selector=[sub1-poland-yt] fallback=space-auto
|
||||
space-auto selector=[sub1-] strategy=leastLoad
|
||||
```
|
||||
|
||||
Не использовать общий `leastLoad` как первый уровень для RuTracker/Kinozal: он может менять egress между соединениями. `maxRTT` и `tolerance` фильтруют кандидатов, но не делают выбор sticky.
|
||||
|
||||
Перед изменением базы сохранять backup. После изменения проверить сгенерированный `/app/bin/config.json` и выполнить `xray -test`; не редактировать сгенерированный файл напрямую.
|
||||
|
||||
Один tag `[2]` не решает DNS-блок Taiga. Один tag `[1]` не решает browser challenge.
|
||||
|
||||
## Правильная проверка
|
||||
@@ -122,6 +155,8 @@ ssh truenas_admin@mallexxx.duckdns.org \
|
||||
|
||||
После restart session должна восстановиться автоматически. Если она не появилась, смотреть `docker logs flaresolverr`; credentials не выводить в лог.
|
||||
|
||||
Автовосстановление можно проверить безопасно: удалить только session `prowlarr` через `sessions.destroy`, дождаться watcher и проверить `request.get` страницы RuTracker с признаком `id="logged-in-username"`.
|
||||
|
||||
## Восстановление quarantine
|
||||
|
||||
Если Prowlarr показывает старый `IndexerStatus`, сначала сделать backup SQLite. Остановить только Prowlarr, удалить только записи `IndexerStatus`, проверить `PRAGMA quick_check`, запустить и выполнить реальный search. Не удалять `prowlarr.db` и не считать health единственным тестом.
|
||||
@@ -132,5 +167,7 @@ ssh truenas_admin@mallexxx.duckdns.org \
|
||||
|
||||
- FlareSolverr session `prowlarr` создаётся с proxy и pre-login.
|
||||
- Прямой запрос через session получает `bb_session`.
|
||||
- Реальный Prowlarr search RuTracker возвращает результаты.
|
||||
- После полного restart: RuTracker — 50 результатов без ошибок; Kinozal — 14 результатов без ошибок.
|
||||
- Три последовательных proxy-запроса получают один egress-IP.
|
||||
- Искусственно удалённая FlareSolverr session автоматически восстановлена и снова logged-in.
|
||||
- Ошибки Lidarr/SkyHook не относятся к FlareSolverr; их routing описан в [[family/how-to/arr-stack-taiga]].
|
||||
Reference in new issue
Block a user