# TorrServer на Кра́кене — диагностика **Дата:** 2026-09-22 · **ОБНОВЛЕНО 2026-09-24 (поздний вечер): «Мастерская сатаны» — раздач нет; ниже найден мёртвый FlareSolverr** **Вывод:** ✅ **TorrServer исправен. ЗАДАЧА ЗАКРЫТА.** «Торренты» пусто было по причине 🔴 **`redapi` указывал на локальный lampac**, чей JacRed отдаёт формат БЕЗ поля `info` → PidTor падал на `torrent.info.sizeName` → NPE → 500 → кэшировался как 503. **ИСПРАВЛЕНО**: `redapi` возвращён на `http://jac.red`. **Приёмка Alex:** «Во! теперь появились торренты. запустил F1..» — ✅ видно в UI. Диагноз и фикс — [[family/how-to/lampac-torrents]]. **Связано:** [[personal/tech/lampac-deployment]], [[family/how-to/lampac-torrents]], [[personal/plans/lampac-disable-1xbet-ads]], [[personal/plans/watchlist-tmdb-missing-marker]] --- ## 🔴 2026-09-24: «Мастерская сатаны» — рецидив симптома 503 + исправление про кэш **Повод:** Alex — *«в торрентах по нему ничего не нашлось в lampac, надо проверить почему, по каким трекерам он ищет, и можем ли мы влиять на список источников например через prowlarr резолвер?»* **Факт:** `/lite/pidtor?title=Мастерская сатаны&year=2025` → **HTTP 503**, `Content-Length: 0`, **`X-Invoke-Cache: HIT`**, t=0.007–0.035s. Это **кэшированный отказ**, а не «0 раздач». Делать вывод о трекерах по такому ответу нельзя. ### 🔴 Исправление: «кэш в `cache/fdb/`» — НЕВЕРНО (прожило сутки в двух доках) ``` $H/lampac/cache/fdb/ → 13 каталогов 0/ 1/ 2/ 3/ 4/ 5/ 7/ 9/ a/ b/ d/ e/ f/, ВСЕ ПУСТЫЕ — find … -type f | wc -l → 0 $H/lampac/cache/module/ → 76 файлов без расширений (OEdMn4LsmVEkyTEYgfu5dg), file → PE32 executable (DLL) Mono/.Net assembly ``` `cache/module/` — **сборки .NET-модулей**, не JSON-ответы PidTor. Опознать модуль: `grep -l "pidtor" $H/lampac/cache/module/*` → `strings <файл> | grep -iE "pidtor|\.dll"` → `PidTor.dll`, `lite/pidtor`, `lite/pidtor/serial/{id}`, `lite/pidtor/s{id}`. 📌 **Практика при 503:** пробовать **заголовок, который ещё не запрашивался** (другой год / title) — свежий ключ минует кэш и даёт честный ответ. `docker restart lampac` кэш ответов **не снимает**. ### По каким трекерам ищет PidTor Своего списка нет. Ходит на `{redapi}/api/v2.0/indexers/all/results?title=..&year=..` — суффикс **`all`** = все индексеры JacRed разом; состав определяет сторона **`jac.red`** (внешний, 144.31.3.10), не lampac. 🔴 **Prowlarr тут ни при чём** — у него свои 6 индексера и он питает Radarr/Sonarr ([[family/how-to/arr-stack-kraken]]). Моста «Prowlarr → источники Lampa» не существует. Влияние на список источников: (а) локальный JacRed lampac — править трекеры в `$H/lampac/data/`, `redapi` переключать **только** после появления поля `info`; (б) Prowlarr в обход PidTor — в плеере таких источников не будет. ### Статус: ✅ ДИАГНОСТИКА ДОВЕДЕНА (2026-09-24, продолжение) Шаги 2–3 выполнены на Кра́кене (не из Mac — апрувы на curl к внешнему хосту истекали): ``` jac.red …results?title=Мастерская сатаны&year=2025 → 200, {"Results":[],"jacred":true} jac.red …results?title=Матрица&year=1999 → 200, 132 раздачи (контроль) jac.red …results?title=Devils Workshop → 200, 2 раздачи (фильм 2022, НЕ тот) ``` **Итог по фильму: раздач у него действительно нет** на 25 трекерах jac.red. Механизм PidTor исправен — доказано контролем на «Матрице». Версия «сломан поиск» неверна. 🔴 **Второй, более важный слой нашёлся ниже:** 3 из 6 индексеров Prowlarr (RuTracker, Kinozal, Kinozal M) заблокированы с `EscalationLevel=9` до 2026-09-25 10:17 из-за мёртвого FlareSolverr (Chrome не стартует). К пустой выдаче Lampa это прямого отношения не имеет (Prowlarr в цепочку PidTor не входит), но ломает **Radarr/Sonarr** — то есть автозакачку. Разбор и незавершённый фикс: [[personal/tech/prowlarr-flaresolverr-cloudflare]] §«2026-09-24». **Список индексеров jac.red (25 шт.) — измеримо, не догадкой:** `GET http://jac.red/api/v2.0/indexers?configured=true` → массив с `name`. --- ## ✅ Статус закрытия (2026-09-22 вечер) | Пункт | Статус | |---|---| | PidTor 500/503 | ✅ исправлено, `redapi=http://jac.red` | | Приёмка в UI | ✅ Alex запустил F1 в плеере | | Тестовая раздача `probe` | ✅ убрана сама (сброс при рестарте) | | `min_sid` | ✅ `min_sid: 3` убран → сток `15` | | Минус год у «Волшебный участок: Фильм» | ✅ ЗАКРЫТО — оставлено пусто (данных нет в TMDB, фильм в производстве) | | Документация | ✅ саммари → [[family/how-to/lampac-torrents]], план снесён | | Запись про `cache/fdb/` | ⚠️ **исправлена 2026-09-24** — папка пустая, см. выше | ### Итог задачи (2026-09-22) Задача про торренты **закрыта полностью**. Единственный дефект был внесён мной (переключение `redapi` на локальный JacRed) и откачен. Разбор → саммари-док `family/how-to/lampac-torrents.md`; детальный план `personal/plans/lampac-pidtor-503-fix.md` снесён по требованию Alex, 8 ссылок на него перебиты. **Онлайн НЕ гасим** — Alex запретил ([[personal/plans/lampac-disable-1xbet-ads]] не применён). --- ## Вопрос Alex > «по просмотру: у меня есть определенные сомнения что через torrserver идут, > там только пункт "смотреть онлайн" работает и он добавляет вотермарк и рекламу > 1xbet - это точно с торрентов? потому что если пункт "торренты" выбрать > при просмотре - то там пусто.» ## Ответ: сомнения Alex верны по рекламе. Но TorrServer исправен. ### Реклама 1xbet — НЕ от TorrServer | Пункт UI | Механизм | Источник потока | Реклама | |---|---|---|---| | **«Торренты»** | `PidTor` → `JacRed` → magnet → `TorrServer` | P2P-раздача | **НЕТ** | | **«Смотреть онлайн»** | `Online` + `OnlineRUS` (20 балансеров) | чужой CDN сайта | **ЕСТЬ (1xbet)** | TorrServer не вставляет рекламу. Баннеры рисует плеер-обёртка онлайн-источника. ## 🔴 Все проверки — сырьём, не догадкой ### 1. TorrServer жив и качает ```bash # изнутри контейнера (снаружи порт 9085 закрыт!) docker exec lampac sh -c 'curl -s http://127.0.0.1:9085/echo' # -> MatriX.135 ``` ✅ **Раздача добавилась и пошла качаться** (тест магнитом Big Buck Bunny): ```json {"title":"probe","name":"Big Buck Bunny","hash":"dd8255ec...","stat":3, "stat_string":"Torrent working","total_peers":343,"active_peers":7, "connected_seeders":5,"bytes_written":6918,"bytes_read":49072, "torrent_size":276445467} ``` ⚠️ Тестовая раздача **удалена** после проверки: `POST /ts/torrents {"action":"rem","hash":"..."}` → HTTP 200. ### 2. JacRed находит раздачи ```bash curl -s "http://127.0.0.1:9118/api/v1.0/torrents?search=Матрица" # HTTP 200, 74 КБ ``` Трекеры в выдаче: `kinozal`, `torrentby`, `rutor`, `rutracker`. Магниты на месте: `magnet:?xt=urn:btih:3A44F276AA59110B5765458EA013863CFD5BFBFA` ### 3. PidTor выдаёт торренты в UI ```bash curl -s "http://127.0.0.1:9118/lite/pidtor?title=Матрица&year=1999" # HTTP 200, 8435 байт, 12 раздач ``` Ответ содержит рабочий торрент: `/lite/pidtor/s61065ea115b7cc3e8db9fb5ab1f6f327f08bd1c9?tr=...` В `/lite/events` PidTor присутствует как источник: `"name":"PidTor"`. ### 4. `jac.red` резолвится ``` getent hosts jac.red -> 144.31.3.10 curl http://jac.red -> HTTP 200 ``` ### 5. 🔴 НО: часть фильмов отдаёт 503 ИЗ КЭША Массовая проверка 12 позиций каталога дала **11 × HTTP 503**, 1 × HTTP 200. При этом JacRed по тем же фильмам отдаёт раздачи: ``` F1 (2025) -> /api/v2.0/indexers/all/results -> 200, 72 раздачи (sid=203,26,18…) Гамнет (2025) -> 200, 14 раздач (max sid=79, 6 проходят min_sid=15) А /lite/pidtor?title=F1 -> 503 с заголовком X-Invoke-Cache: HIT ``` **`X-Invoke-Cache: HIT` + время ответа 0.0016s = ответ из памяти, запроса к JacRed НЕ было.** Один раз источник отказал → lampac закэшировал 503 на ~40 мин. 🔴 **Диагностический признак: смотреть заголовки, не только код.** 503 ≠ «раздач нет» (тогда был бы 200 с пустым списком). 503 = отказ источника, закэшированный процессом. Сброс — `docker restart lampac`. ## 🔴 Роли в цепочке: поиск НАРУЖУ, качание локально ``` Lampa → lampac PidTor → jac.red (ПОИСК раздач — ЧУЖОЙ хост 144.31.3.10) → magnet → TorrServer Кра́кена (КАЧАЕТ, локально) → поток /lite/pidtor/s ``` ⚠️ Поиск раздач **не локален** — `PidTor.redapi = "http://jac.red"`. TorrServer только качает то, что нашёл чужой сервер. Не путать эти роли при диагностике. ### 🔴🔴 Локальный JacRed — НЕ альтернатива. Он ломает PidTor **Проверено 2026-09-22 (стоило полной поломки):** переключение `redapi` на `http://127.0.0.1:9118` (локальный JacRed lampac) роняет **ВСЕ** фильмы в HTTP 500. ``` НАШ JacRed отдаёт поля: Tracker, Details, Title, Size, PublishDate, Category, Seeders, Peers, MagnetUri ^^^ поля "info" НЕТ jac.red отдаёт ещё: info{quality, voices[], sizeName, name, originalname, relased}, ffprobe, languages, CategoryDesc PidTor/Controller.cs:97: string mediainfo = torrent.info.sizeName ?? string.Empty; ^^^^^^^^^^^^^^ info == null -> NullReferenceException -> 500 ``` Локальный JacRed быстрее (0.12s против 0.35s), но **несовместим по формату**. `redapi` обязан оставаться `http://jac.red`. Подробно: [[family/how-to/lampac-torrents]] ## 🔴 `min_sid: 15` — второй фильтр, режущий выдачу Реальные сиды по свежим фильмам: **1–37**. Порог 15 отсекает большинство: ``` Гамнет: из 14 раздач проходят только 6 F1: отсекаются раздачи с sid=1, 4, 7 (рабочие) ``` Понижение `min_sid` — решение Alex (низкий sid = медленнее качает). Варианты: `1` (показывать всё) · `3..5` (компромисс) · оставить `15`. ## 🔴 Маршруты — главный питфолл разбора TorrServer **НЕ доступен по порту 9085 напрямую** — lampac проксирует его под префиксом **`/ts/`** на порт **9118**: ``` http://127.0.0.1:9118/ts/echo -> MatriX.135 (кто ты) http://127.0.0.1:9118/ts/{*suffix} -> прокси на TorrServer API http://127.0.0.1:9118/ts/stream -> воспроизведение http://127.0.0.1:9118/ts/playlist -> плейлист http://127.0.0.1:9118/ts/download/ -> скачивание ``` Проверять **только изнутри контейнера** (`docker exec lampac`) — снаружи порт 9085 даёт `Connection refused`. ### Метод запроса ВАЖЕН ``` POST /ts/torrents -d '{"action":"list"}' -> 200, [] ✅ ТОЛЬКО ТАК POST /ts/torrents с телом [] -> 400 POST /ts/torrents без тела -> 400 POST /ts/torrents с телом {} -> 400 GET /ts/torrents -> 404 (метода нет) GET /ts/torrents/list -> 404 GET /ts/settings -> 403 (нужна авторизация ts:tspass) ``` **400 вместо 404 = маршрут существует.** Это ключевой признак при диагностике. 🔴 **Проверено 2026-09-22:** список раздач отдаёт ТОЛЬКО `-d '{"action":"list"}'` с заголовком `Content-Type: application/json`. Пустое тело, `[]` и `{}` → 400. Верный вызов: ```bash ssh kraken "curl -s -m 15 -X POST http://127.0.0.1:9118/ts/torrents \ -H 'Content-Type: application/json' -d '{\"action\":\"list\"}'" ``` ### Удаление раздачи ```bash ssh kraken "curl -s -X POST http://127.0.0.1:9118/ts/torrents \ -H 'Content-Type: application/json' \ -d '{\"action\":\"rem\",\"hash\":\"\"}'" ``` ⚠️ **Раздачи живут в памяти процесса TorrServer.** `docker restart lampac` их выгружает — тестовая раздача `probe` (Big Buck Bunny), добавленная 2026-09-22, после рестарта исчезла сама, список вернулся пустым. Убирать вручную не потребовалось. ## 🔴 Конфиг: где что лежит ### `current.conf` (эффективный, слитый из base.conf + init.conf) ```json "TorrServer": { "releases": "MatriX.135", "tsport": 9085, "defaultPasswd": "ts", "limit_map": [{ "pattern": "^/ts/", "map": { "limit": 50, "second": 1 } }] }, "JacRed": { "typesearch": "webapi", "disableJackett": true, "webApiHost": "http://ns3bg91xvuqfvq9h.cfhttp.top", "Red": { "trackers": ["rutracker","rutor","kinozal","nnmclub", "megapeer","bitru","toloka","lostfilm","baibako","torrentby", "hdrezka","selezen","animelayer","anilibria","anifilm"] } }, "PidTor": { "enable": true, "enabled": false, "redapi": "http://jac.red", "min_sid": 15, "torrs": null, ← README: без этого список ПУСТОЙ "auth_torrs": null ← ...но фактически /lite/pidtor работает } ``` ⚠️ **Расхождение с README PidTor:** README говорит «пункт появляется только если заданы `torrs`/`auth_torrs`, иначе список пустой». Фактически при `null` `/lite/pidtor` отдал 8435 байт с рабочей раздачей. README устарел для этой сборки (`MatriX.135`). ### API JacRed ``` GET /api/v1.0/conf -> {"apikey":true} GET /api/v1.0/torrents?search=... -> список раздач GET /api/v2.0/indexers/{status}/results?Query= -> JacRed/Jackett-формат ``` ⚠️ `/jacred`, `/jacred/api` → **404**. Не те пути. ### Секция `TorrServer.settings.json` (data/ts/) ```json {"BitTorr": {"CacheSize": 100663296, "ConnectionsLimit": 25, "DisableDHT": false, "DisablePEX": false, "DisableTCP": false, "EnableIPv6": false, "PreloadCache": 0, "ReaderReadAHead": 83, "TorrentDisconnectTimeout": 180, "TorrentsSavePath": "", "UseDisk": false, "RetrackersMode": 1}} ``` ## Питфоллы сессии 1. 🔴 **`/media/movies-radarr` — два разных каталога.** Снаружи `/media/movies-radarr` это SD-пустышка (0 файлов). Реальный путь Radarr = монтируется ИЗ ДРУГОГО диска: `/srv/dev-disk-by-uuid-49e8f586-…/media/movies-radarr` (17 каталогов). Отдельный диск от lampac (`6194539b`). Проверять `docker inspect` маунты, а не `find` по наружному пути. 2. 🔴 **`setsid nohup` НЕ спасает от ssh-обрыва.** Прогон генератора дважды умирал (`client_loop: send disconnect: Broken pipe`). Рабочее решение — `systemd-run --user --unit= --scope