plan: Lampac на Кра́кене — блокер библиотеки, отвергнутые варианты
This commit is contained in:
1 parent
d8d736e606
commit
4a8cb45f42
1 file changed
+165
@@ -0,0 +1,165 @@
|
||||
---
|
||||
title: Lampac на Кра́кене — развёртывание
|
||||
created: '2026-09-21'
|
||||
updated: '2026-09-22'
|
||||
type: plan
|
||||
namespace: personal
|
||||
status: proposed
|
||||
tags:
|
||||
- lampac
|
||||
- torrserver
|
||||
- jellyfin
|
||||
- webos
|
||||
- streaming
|
||||
- kraken
|
||||
related:
|
||||
- '[[personal/tech/multistream-single-flow-limit]]'
|
||||
- '[[personal/tech/inter-site-throughput-taiga-to-mac]]'
|
||||
- '[[personal/tech/xray-reverse-tunnel-kraken-truenas]]'
|
||||
- '[[family/how-to/kraken-network]]'
|
||||
---
|
||||
|
||||
# Lampac на Кра́кене — развёртывание
|
||||
|
||||
> План составлен 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 (см. раздел «Альтернатива»).
|
||||
|
||||
## ❌ Отвергнутые варианты (не возвращаться)
|
||||
|
||||
| Вариант | Почему нет |
|
||||
|---|---|
|
||||
| Lampac/бэкенд **на Mac** | Дословно Alex: *«нахуя нам блядь на маке что-то, на кракене блядь бэкенд»*. Бэкенд — только на Кра́кене |
|
||||
| 8 xray-туннелей + mux | Одно логическое окно, head-of-line blocking. Путь один (ТТК → Ростелеком) |
|
||||
| MPTCP по одному пути | То же — нужны **разные** физические пути |
|
||||
| **«Решить транскодом»** | Транскод — **не ответ**. Он лишь облегчает поток. Корень — single-flow TCP при RTT 104 мс |
|
||||
|
||||
## Замеры, на которых стоит план
|
||||
|
||||
| Режим | Результат |
|
||||
|---|---|
|
||||
| Mac → TrueNAS, 1 SCP-поток | **~28 Мбит/с** |
|
||||
| Mac → TrueNAS, 4 параллельных | ~51 Мбит/с (×1.8) |
|
||||
| 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).
|
||||
|
||||
**Плагин для Lampa:** `http://<lampac>:9118/online.js` ← то, что планировалось
|
||||
**UI для LG:** `/lg.ipk` отдаёт сам Lampac.
|
||||
|
||||
## Целевой хост
|
||||
|
||||
**Кра́кен** — aarch64, Debian 12, Docker 29.4.3, 25 контейнеров.
|
||||
`/` (SD) — 14G всего, 8.4G свободно. `/srv/...` — 1.8T, **404 ГБ свободно**.
|
||||
|
||||
## Шаги
|
||||
|
||||
### 1. Каталоги (на data-диске, НЕ на SD)
|
||||
```
|
||||
/srv/dev-disk-by-uuid-6194539b-.../lampac/
|
||||
├── docker-compose.yml
|
||||
├── config/
|
||||
├── cache/ # кэш TorrServer — только сюда
|
||||
└── data/ # БД JacRed
|
||||
```
|
||||
|
||||
### 2. docker-compose.yml
|
||||
- образ `ghcr.io/lampac-nextgen/lampac:latest`, `platform: linux/arm64`
|
||||
- порт `9118:9118`, `restart: unless-stopped`
|
||||
- bind-mount `cache/` → каталог кэша TorrServer (иначе образ забьёт SD-карту)
|
||||
- bind-mount `config/` → конфиг
|
||||
- ⚠️ в контейнере рабочий каталог `/lampac`, файлы читаются **из корня**, не из `config/`
|
||||
|
||||
### 3. Конфиг TorrServer внутри Lampac
|
||||
- лимит кэша (напр. 20 ГБ) — чтобы не сожрал 404 ГБ
|
||||
- `--gst` GStreamer HLS/fMP4 транскод
|
||||
- целевой битрейт 10–15 Мбит, H.264/AAC, 1080p
|
||||
|
||||
### 4. Первый запуск
|
||||
```
|
||||
curl -fsS "http://localhost:9118/version?type=hash"
|
||||
```
|
||||
Пусто/ошибка → `docker logs lampac`.
|
||||
|
||||
### 5. Доступ ТВ к Lampac
|
||||
Кра́кен в 192.168.2.x, ТВ в 192.168.1.x — межроутерный путь. Решается на месте (DNAT либо reverse-туннель).
|
||||
Проверять заранее в плане не требуется.
|
||||
|
||||
### 6. Подключение Lampa на ТВ
|
||||
- Lampa через **Media Station X** (`.ipk` с флешки на розничных LG не работает)
|
||||
- Настройки → TorrServer → «Использовать основную ссылку» → `<lampac>:9118`
|
||||
- плагин: `http://<lampac>:9118/online.js`
|
||||
- буфер плеера: **50–100 МБ**
|
||||
- качество по скорости: до 10 Мбит → 720p; 10–25 → 1080p
|
||||
|
||||
## Проверка (приёмка)
|
||||
|
||||
1. `docker ps` — контейнер `Up`
|
||||
2. `curl /version?type=hash` — версия отдаётся
|
||||
3. **С ТВ открыть Lampa → фильм → играет без дёрганья 5+ минут**
|
||||
4. Битрейт потока на ТВ **≤15 Мбит**
|
||||
|
||||
**Приёмка = видно в UI и смотрится**, не «API отвечает».
|
||||
|
||||
## Откат
|
||||
|
||||
- `docker compose down` + удалить каталог `/srv/.../lampac/`
|
||||
- Стек Кра́кена не трогаем — Lampac изолирован
|
||||
|
||||
## Риски
|
||||
|
||||
| Риск | Митигация |
|
||||
|---|---|
|
||||
| Кэш 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 (этот не подходит)
|
||||
|
||||
## Связанные
|
||||
|
||||
- [[personal/tech/multistream-single-flow-limit]] — исследование, ранжирование путей
|
||||
- [[personal/tech/inter-site-throughput-taiga-to-mac]] — замеры полосы и RTT
|
||||
- [[personal/tech/xray-reverse-tunnel-kraken-truenas]] — reverse-туннель
|
||||
- [[family/how-to/kraken-network]] — линки ТВ
|
||||
Reference in new issue
Block a user