Files
obsidian-vault/personal/tech/lampac-torrserver.md
T

8.1 KiB
Raw Blame History

TorrServer на Кра́кене — диагностика (исправен)

Дата: 2026-09-22 Вывод: 🔴 ЧИНИТЬ НЕЧЕГО. TorrServer и вся торрент-цепочка работают. Связано: personal/tech/lampac-deployment, 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 жив и качает

# изнутри контейнера (снаружи порт 9085 закрыт!)
docker exec lampac sh -c 'curl -s http://127.0.0.1:9085/echo'
# -> MatriX.135

✅ Раздача добавилась и пошла качаться (тест магнитом Big Buck Bunny):

{"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 находит раздачи

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

curl -s "http://127.0.0.1:9118/lite/pidtor?title=Матрица&year=1999"
# HTTP 200, 8435 байт

Ответ содержит рабочий торрент: /lite/pidtor/s61065ea115b7cc3e8db9fb5ab1f6f327f08bd1c9?tr=...

В /lite/events PidTor присутствует как источник: "name":"Pid<s>T</s>or".

4. jac.red резолвится

getent hosts jac.red  ->  144.31.3.10
curl http://jac.red   ->  HTTP 200

🔴 Маршруты — главный питфолл разбора

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  с телом []   -> []      ✅ список раздач
POST /ts/torrents  с телом {}   -> 400     (неверный формат)
GET  /ts/torrents               -> 404     (метода нет)
GET  /ts/settings               -> 403     (нужна авторизация ts:tspass)

400 вместо 404 = маршрут существует. Это ключевой признак при диагностике.

🔴 Конфиг: где что лежит

current.conf (эффективный, слитый из base.conf + init.conf)

"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/)

{"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=<name> --scope <script>: отвязывает от сессии.
  3. 🔴 strings в контейнере не даёт маршрутов TS — пустой вывод. Смотреть README.md модуля и пробовать запросы (404 vs 400), а не парсить бинарник.
  4. 🔴 vast.js и modification.js — НЕ источники рекламы. VASTPlayer не подключён в sisi/index.html; modification.js (22 КБ) даёт 0 совпадений на 1xbet|vast|adTag, домены только w3.org. Реклама от онлайн-источников.

Если «Торренты» всё же пусто у Alex — что проверить

  1. Что именно за фильм (есть ли раздачи в принципе — старые/редкие могут быть без сидов)
  2. curl "http://127.0.0.1:9118/lite/pidtor?title=<название>&year=<год>" — отдаёт ли
  3. docker logs lampac | grep -i pidtor — доходит ли запрос
  4. min_sid: 15 — раздачи с сидами < 15 отсекаются. Возможно, поэтому пусто