139 lines
6.4 KiB
Markdown
139 lines
6.4 KiB
Markdown
---
|
||
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 из сессии обсуждения.
|
||
|
||
## Задача
|
||
|
||
Дать ТВ в Бишкеке воспроизведение без дёрганья. Корень проблемы — **single-flow TCP при RTT 104 мс**:
|
||
Jellyfin отдаёт видео одним потоком → ~28–45 Мбит, а remux'ы требуют 60–80.
|
||
|
||
## ❌ Отвергнутые варианты (не возвращаться)
|
||
|
||
| Вариант | Почему нет |
|
||
|---|---|
|
||
| Lampac/бэкенд **на Mac** | *«нахуя нам блядь на маке что-то, на кракене блядь бэкенд»*. Бэкенд — только на Кра́кене |
|
||
| 8 xray-туннелей + mux | Одно логическое окно, head-of-line blocking. Путь один (ТТК → Ростелеком) |
|
||
| MPTCP по одному пути | То же — нужны **разные** физические пути |
|
||
| **Транскод** | 🔴 **Кра́кен его не тянет.** Выкинут целиком |
|
||
|
||
## Замеры, на которых стоит план
|
||
|
||
| Режим | Результат |
|
||
|---|---|
|
||
| Mac → TrueNAS, 1 SCP-поток | **~28 Мбит/с** |
|
||
| Mac → TrueNAS, 4 параллельных | ~51 Мбит/с (×1.8) |
|
||
| Speedtest (8 сессий) | до 120 Мбит/с |
|
||
|
||
Рост ×1.8 при 4 потоках доказывает: лимит не в полосе транзита, а в **одном TCP-потоке** при RTT ~104 мс.
|
||
|
||
## Что разворачиваем
|
||
|
||
`lampac-nextgen/lampac` (MIT, .NET 10), порт **9118**.
|
||
Внутри: TorrServer (subprocess) + JacRed (Jackett-совместимый индексатор) + LampaWeb + TmdbProxy + DLNA.
|
||
|
||
**Плагин для 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 ГБ
|
||
|
||
### 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
|
||
|
||
### 7. 🔜 Следующий шаг после плана — ПЛАГИН БИБЛИОТЕКИ
|
||
|
||
После того как Lampac поднят и Lampa с ним работает — **следующим шагом ставим плагин библиотеки**,
|
||
чтобы ТВ видел фильмы, а не только публичные раздачи.
|
||
|
||
- Источник библиотеки: файлы на **TrueNAS** (медиа-стек Radarr/Jellyfin)
|
||
- Механизм: плагин Lampa, который ходит к библиотеке как к источнику воспроизведения
|
||
- Детали механизма — **отдельный план** после приёмки шагов 1–6
|
||
|
||
## Проверка (приёмка)
|
||
|
||
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` |
|
||
| ТВ не достанет 9118 | шаг 5 решается на месте |
|
||
|
||
## Связанные
|
||
|
||
- [[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]] — линки ТВ
|