From b915a58ad9057da28c7a29fc22917bc029beb56c Mon Sep 17 00:00:00 2001 From: gilfanovr Date: Sun, 11 Oct 2026 15:52:24 +0300 Subject: [PATCH] =?UTF-8?q?rpi-media:=20RuTracker=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20FlareSolverr,=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0?= =?UTF-8?q?=D1=83=D1=82=20=D0=BF=D1=80=D0=BE=D0=BA=D1=81=D0=B8=20180=20?= =?UTF-8?q?=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- servers/rpi.md | 5 +++-- .../__pycache__/provision.cpython-314.pyc | Bin 26497 -> 26591 bytes stacks/rpi-media/provision.py | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/servers/rpi.md b/servers/rpi.md index 3e68d30..2ffc3cf 100644 --- a/servers/rpi.md +++ b/servers/rpi.md @@ -93,7 +93,8 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст - ⚠️ **Медиа делят диск с бэкапами.** `onedrive-backup` падает с кодом 2 при заполнении >90 % (~370 ГБ свободно) → `BackupFailed`. В Radarr/Sonarr стоит `minimumFreeSpaceWhenImporting = 500 ГБ`: ниже этого импорт останавливается. **qBittorrent своего порога не имеет** — ручная заливка торрентов мимо *arr может забить диск. - Jellyfin в `network_mode: host` — иначе LG/iOS не находят сервер автообнаружением (UDP 7359 и DLNA-мультикаст не проходят через бридж). Аппаратного транскодинга на Pi 4 нет (V4L2 убран в Jellyfin 10.9), `EncodingThreadCount=3`: расчёт на Direct Play. ⚠️ Транскод 4K/HEVC Pi не тянет — клиенту нужен нативный кодек (Infuse играет почти всё сам). - Метаданные и интерфейс — ru, предпочтительные аудио/субтитры у пользователя — `rus`, режим субтитров Smart. Библиотеки «Фильмы» (`/data/library/movies`) и «Сериалы» (`/data/library/tv`), в Jellyfin только чтение. -- Индексаторы (публичные, без аккаунтов): NoNaMe Club, The Pirate Bay, YTS — синхронизированы в Radarr/Sonarr; Rutor и EZTV есть в Prowlarr, но в *arr не доехали (Rutor не проходит тест по категориям, EZTV на момент настройки лежал); 1337x не добавился (таймаут даже через FlareSolverr). Приватные трекеры (RuTracker, Kinozal) — руками, нужен аккаунт. +- Индексаторы (публичные, без аккаунтов): NoNaMe Club, The Pirate Bay, YTS — синхронизированы в Radarr/Sonarr; Rutor и EZTV есть в Prowlarr, но в *arr не доехали (Rutor не проходит тест по категориям, EZTV на момент настройки лежал); 1337x не добавился (таймаут даже через FlareSolverr). **RuTracker** (добавлен 2026-10-11, аккаунт пользователя; логин/пароль — только в БД Prowlarr): через FlareSolverr, опции «убрать кириллицу», «добавить RUS», «первые теги в конец» — чтобы *arr сопоставляли английские названия и видели русскую дорожку; приоритет 10 (выше публичных, 25). Синхронизирован в Radarr и Sonarr. Kinozal и прочие приватные — руками. +- ⚠️ RuTracker закрывает `login.php`/`tracker.php` челленджем Cloudflare (по IPv4; IPv6 у малины нет маршрута). FlareSolverr на Pi решает его **80–180 с** — у прокси в Prowlarr `requestTimeout=180` (было 60, с ним добавление падало по таймауту). После решения Prowlarr держит cookie и поиск идёт ~4 с; когда cookie протухнет, первый поиск снова будет минутами, и *arr могут на время пометить индексатор недоступным. - Bazarr: провайдеры без аккаунтов (`embeddedsubtitles`, `podnapisi`, `yifysubtitles`); для русских субтитров лучший — OpenSubtitles.com, нужен аккаунт. - **Авторизация:** везде пользователь `rus`, один пароль — `/opt/media/.admin-password` (rus 600). *arr — формы, пароль **всегда** (режим «без пароля из LAN» в новых *arr требует `AllowedHosts`). Между собой сервисы ходят по API-ключам из `config//config.xml`. - Первичная связка — `stacks/rpi-media/provision.py` (идемпотентный, пароль и ключи читает на месте): `python3 /opt/media/provision.py [qbit jellyfin arr prowlarr bazarr seerr]`. @@ -129,4 +130,4 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст - Через неделю снять SMART и посчитать реальный прирост Start_Stop/Load_Cycle — прогноз ресурса пока оценочный. - ⏳ Определить хранение входящих фото: сейчас автоматически не удаляются ради ссылок в старых тредах; очередь сообщений только в памяти и теряется при перезапуске. -- Медиацентр: проброс 6881 tcp/udp на роутере (раздача/скорость); пароль SFTP роутера слабый (только LAN) — сменить; приватные трекеры и OpenSubtitles — аккаунты пользователя; решить про автообновление образов. +- Медиацентр: проброс 6881 tcp/udp на роутере (раздача/скорость); пароль SFTP роутера слабый (только LAN) — сменить; Kinozal и OpenSubtitles — аккаунты пользователя; решить про автообновление образов. diff --git a/stacks/rpi-media/__pycache__/provision.cpython-314.pyc b/stacks/rpi-media/__pycache__/provision.cpython-314.pyc index e6954468d851d041472ef71ca61562e22f4130aa..9ea63d6a5700b5c3705b80dfc463136cf5d2bda3 100644 GIT binary patch delta 924 zcmZutO-xfk5Z-C~Xj(!mR4j#-LXn?J=|fv=>Fc8){}N1D>x)KHtn`6Z5iDTjK#UhX z5ixVZi!oe`7ek&GqlsQLCKv%@lyD)a@nVeV!IKAfL6e#|*?c>h`SzQg@7gkKEQ6)q zQeY-5Zd_kF_n>#t5-}CICMHuu=O@JMc&1@gO=nV~)@zFU;hAwl&6EdRbtUg9aKK#qo}%4CJ3S`d!Y$$ z$^myUS5L8>(e+sgF_CgIzI)t8J8@H%g^*HA!&uc4%5M(B&JHw!YD-9!sGUZWK;@)E zH2m$k3F9B+Zlx{UE$&M06hA07>fs)jReq+j3u1Cq0CBV-9G?$FY8ay{9oOXsw4Xt+~~u-?eVZs+XqJiOED} zR2`d|M5TQTHnr}K1po_v>6`@vPIoC_#FeffNSe^y0p7P(&zdVd2XnQz%xl(Nb9-i| zSDe0gR^OVdf>+V}-9(C9TW0N4&wE{+w=nKCEHxIz{f1X=TRdQR9dN|Mx|MMLfJ<1_ zTLwym)e>RArJd|ME#y0yx7jaj^{k-1h`V(lYM<#nC~o5QMP9Gw@RdUaE+i6y%sK|` zSEAZv6IgmA`-b(rx@?S7A{a~tAfTO1o&=$rwcGIJpy)JnH4}q%YiejRb6JgN$A&W( z)ZR23YdcK=nsGQa15x~xY7_<;u}*WGd9DK)H`0$FjPt6L#|LKzaa}EA?4PQ~e32E{ VArr^ZGyEa14Z!~6Fq%fL{07sG)LH-l delta 921 zcmZuuO-vI(6rQ*3B5k24wUk0jDOjL_EkA{p{!oxoAP8xvWd$THAf>^8lEr`*Lh!5x zeFvk#lZi3$MD`+y2NS~yBj^E5FC==?m>@BlcygAe2`0Ww-t3$A&G)|f_Fxy*c0pUO zEmRX0D{DK~e)nx^y(%b>##9jpJeFR#`#5-rKig-a6cgUEinM|d6B*DELMsFfwbZbS z17(D$NCgqp*yz!#Otg|(g;TT&Gv27adbEX}^SmNt`uJv?9|UT{PM;BKaL;4LW#3t- z#XCMb)XBA?op$5C&)IJ`khy$8b(*+jZ7f`n-4_b!d0I~!#*4ExAwp3DQ;-XK;h)NZ zL;gn!CvC*9{&F@mFHmb}iW&Z^Dip9nGgD#0+W{lA;6}g>u49#70wt{e6EH&vOFII5 zo1mv|9P4mvJULyo9XC4Mt6plLz64Nz!st}ydKSX)t)3C)f>!oVcITu@2M9W9mAxz{ zw!FArej1JheL5Qro*Z&){Ij67 zzVjp{HPJ372;fp?Ni5_9-9t3!P>KKIuM$1LJ5Qzzo_by*|QGowW$8VlVbB>p0w5Xk*g~?6Dd*d zn2RIj%C`l&NTu>!r7>dT_H3G{n%`^GMtS}{&qvkL%Yg}AQ_lFsZ;W45O4U&d2M(z_ z_8j!G%i^YdZj;k@IawYI$9X?%aMI|oO{G(^&mr*xYuPz5C?neOexe1Mr0v8N;KQsP zMB9YZq>{<jCP`BXBQQBI2KCDDVinJV=>L$E~_FXQUWXFdpq KqcEn^xBdc^?#GM( diff --git a/stacks/rpi-media/provision.py b/stacks/rpi-media/provision.py index 3044dbc..ae809ad 100644 --- a/stacks/rpi-media/provision.py +++ b/stacks/rpi-media/provision.py @@ -210,6 +210,8 @@ def prowlarr(): for f in p["fields"]: if f["name"] == "host": f["value"] = "http://flaresolverr:8191/" + if f["name"] == "requestTimeout": + f["value"] = 180 # Chromium на Pi решает челлендж 80–180 с; дефолтных 60 не хватает p.update({"name": "FlareSolverr", "tags": [tag["id"]]}) st, r = http("POST", u + "/indexerProxy", p, h) log("prowlarr flaresolverr", st, r if st >= 300 else "")