diff --git a/personal/plans/lampac-kraken.md b/personal/plans/lampac-kraken.md index 9a7b299f..2a817037 100644 --- a/personal/plans/lampac-kraken.md +++ b/personal/plans/lampac-kraken.md @@ -24,28 +24,19 @@ related: > План составлен 2026-09-21, записан в vault 2026-09-22. > В плане учтены прямые правки Alex из сессии обсуждения. -## 🔴 Блокер №1 — Lampac НЕ смотрит библиотеку TrueNAS +## Задача -**Это главный вопрос, и он не решён.** Lampac / TorrServer отдают **публичные раздачи** из трекеров. -Фильмы, лежащие на TrueNAS (remux'ы, библиотека Radarr/Jellyfin), Lampac **не показывает** — -это другой контент-путь. - -| Что нужно | Кто это решает | -|---|---| -| «Просто посмотреть кино» | ✅ Lampac / TorrServer | -| **«Смотреть СВОЮ библиотеку с TrueNAS»** | ❌ Lampac **не решает** → нужен prefetch-proxy | - -**Значит:** прежде чем что-то разворачивать — решить, какая из двух задач настоящая. -Если вторая (своя библиотека) — **план Lampac не тот план**, идти в prefetch-proxy (см. раздел «Альтернатива»). +Дать ТВ в Бишкеке воспроизведение без дёрганья. Корень проблемы — **single-flow TCP при RTT 104 мс**: +Jellyfin отдаёт видео одним потоком → ~28–45 Мбит, а remux'ы требуют 60–80. ## ❌ Отвергнутые варианты (не возвращаться) | Вариант | Почему нет | |---|---| -| Lampac/бэкенд **на Mac** | Дословно Alex: *«нахуя нам блядь на маке что-то, на кракене блядь бэкенд»*. Бэкенд — только на Кра́кене | +| Lampac/бэкенд **на Mac** | *«нахуя нам блядь на маке что-то, на кракене блядь бэкенд»*. Бэкенд — только на Кра́кене | | 8 xray-туннелей + mux | Одно логическое окно, head-of-line blocking. Путь один (ТТК → Ростелеком) | | MPTCP по одному пути | То же — нужны **разные** физические пути | -| **«Решить транскодом»** | Транскод — **не ответ**. Он лишь облегчает поток. Корень — single-flow TCP при RTT 104 мс | +| **Транскод** (в т.ч. GStreamer HLS в Lampac) | 🔴 **Кра́кен его не тянет.** Транскод выкинут целиком, не включать | ## Замеры, на которых стоит план @@ -56,15 +47,13 @@ related: | Speedtest (8 сессий) | до 120 Мбит/с | Рост ×1.8 при 4 потоках доказывает: лимит не в полосе транзита, а в **одном TCP-потоке** при RTT ~104 мс. -Jellyfin отдаёт видео **одним потоком** → упирается в 28–45 Мбит, а remux'ы требуют 60–80. ## Что разворачиваем `lampac-nextgen/lampac` (MIT, .NET 10), порт **9118**. -Внутри: TorrServer (subprocess) + JacRed (Jackett-совместимый индексатор) + GStreamer HLS/fMP4 транскод + -DLNA + TmdbProxy + LampaWeb (отдаёт `.ipk` для LG). +Внутри: TorrServer (subprocess) + JacRed (Jackett-совместимый индексатор) + LampaWeb + TmdbProxy + DLNA. -**Плагин для Lampa:** `http://:9118/online.js` ← то, что планировалось +**Плагин для Lampa:** `http://:9118/online.js` **UI для LG:** `/lg.ipk` отдаёт сам Lampac. ## Целевой хост @@ -92,8 +81,7 @@ DLNA + TmdbProxy + LampaWeb (отдаёт `.ipk` для LG). ### 3. Конфиг TorrServer внутри Lampac - лимит кэша (напр. 20 ГБ) — чтобы не сожрал 404 ГБ -- `--gst` GStreamer HLS/fMP4 транскод -- целевой битрейт 10–15 Мбит, H.264/AAC, 1080p +- 🔴 **транскод НЕ включать** — Кра́кен не тянет ### 4. Первый запуск ``` @@ -103,7 +91,6 @@ curl -fsS "http://localhost:9118/version?type=hash" ### 5. Доступ ТВ к Lampac Кра́кен в 192.168.2.x, ТВ в 192.168.1.x — межроутерный путь. Решается на месте (DNAT либо reverse-туннель). -Проверять заранее в плане не требуется. ### 6. Подключение Lampa на ТВ - Lampa через **Media Station X** (`.ipk` с флешки на розничных LG не работает) @@ -112,11 +99,20 @@ curl -fsS "http://localhost:9118/version?type=hash" - буфер плеера: **50–100 МБ** - качество по скорости: до 10 Мбит → 720p; 10–25 → 1080p +### 7. 🔜 Следующий шаг после плана — ПЛАГИН БИБЛИОТЕКИ + +После того как Lampac поднят и Lampa с ним работает — **следующим шагом ставим плагин библиотеки**, +чтобы ТВ видел фильмы, а не только публичные раздачи. + +- Источник библиотеки: файлы на **TrueNAS** (медиа-стек Radarr/Jellyfin) +- Механизм: плагин Lampa, который ходит к библиотеке как к источнику воспроизведения +- Детали механизма — **отдельный план** после приёмки шагов 1–6 + ## Проверка (приёмка) 1. `docker ps` — контейнер `Up` 2. `curl /version?type=hash` — версия отдаётся -3. **С ТВ открыть Lampa → фильм → играет без дёрганья 5+ минут** +3. **С ТВ открыть Lampa → играет без дёрганья 5+ минут** 4. Битрейт потока на ТВ **≤15 Мбит** **Приёмка = видно в UI и смотрится**, не «API отвечает». @@ -133,29 +129,7 @@ curl -fsS "http://localhost:9118/version?type=hash" | Кэш TorrServer съест диск | bind-mount на 1.8T + лимит кэша | | ARM64-образ отсутствует | `docker manifest inspect`; иначе сборка из исходников | | SD-карта кончится | всё пишущее — только на `/srv` | -| Транскод не тянет CPU Кра́кена | снизить до 720p/8 Мбит | - -## Альтернатива, если нужна СВОЯ библиотека: prefetch-proxy - -Механизм: прокси **на стороне клиента** делает **N параллельных Range-запросов** к TrueNAS → -N независимых TCP-окон → до 120 Мбит (не один поток). - -``` -❌ 8 туннелей + mux → одно логическое окно -✅ N Range-запросов → N независимых окон -``` - -Готовые инструменты: `aria3` (PyPI), `node-HLS-Proxy` (warren-bank), `nginx proxy_cache + slice`, -`JellyfinCache` (ArnyminerZ), `jspeedstreamer`. - -⚠️ Прокси **обязан** стоять на стороне клиента (Бишкек), не на TrueNAS — иначе запросы всё равно -идут через узкий канал по отдельности. - -## Что дальше - -1. Ответить на блокер: **«просто кино» или «своя библиотека»** -2. Если кино → пункты 1–6 выше -3. Если библиотека → писать отдельный план на prefetch-proxy (этот не подходит) +| ТВ не достанет 9118 | шаг 5 решается на месте | ## Связанные