[2026-09-22] eagle: family/how-to/tv-lampac-plugin.md personal/plans/lampac-kraken.md personal/plans/lampac-watchlist-plugin.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 11:32:59 +06:00
1 parent 3e4ebf70aa
commit 0edc4fe42f
4 files changed
+443 -86

No files matched your search

+86 -37
View File
@@ -49,9 +49,13 @@ related:
## Что разворачиваем
`lampac-nextgen/lampac` (MIT, .NET 10), порт **9118**.
Внутри: TorrServer (subprocess) + JacRed (Jackett-совместимый индексатор) + LampaWeb + TmdbProxy + DLNA.
Внутри: TorrServer (subprocess) + JacRed (Jackett-совместимый индексатор) + LampaWeb + TmdbProxy + DLNA
+ **Catalog** (каталоги; включён нами — см. шаг 7).
**Плагины для Lampa:**
- `http://<lampac>:9118/online.js` — онлайн-источники (70+)
- `http://<lampac>:9118/catalog.js` — каталог «Мой список» (watchlist)
**Плагин для Lampa:** `http://<lampac>:9118/online.js`
**UI для LG:** `/lg.ipk` отдаёт сам Lampac.
## Целевой хост
@@ -134,14 +138,21 @@ curl -fsS "http://localhost:9118/version?type=hash"
- буфер плеера: **50–100 МБ**
- качество по скорости: до 10 Мбит → 720p; 10–25 → 1080p
### 7. 🔜 Следующий шаг после плана — ПЛАГИН БИБЛИОТЕКИ
### 7. 🔜 Шаг 7 плана — ВЫПОЛНЕН (серверная часть)
После того как Lampac поднят и Lampa с ним работает — **следующим шагом ставим плагин библиотеки**,
чтобы ТВ видел фильмы, а не только публичные раздачи.
**Статус: сделано 2026-09-22.** Отдельный план — [[personal/plans/lampac-watchlist-plugin]].
- Источник библиотеки: медиафайлы на диске Кра́кена
- Механизм: плагин Lampa, который ходит к библиотеке как к источнику воспроизведения
- Детали механизма — **отдельный план** после приёмки шагов 1–6
Итог: `movies-watchlist.md` отдаётся каталогом Lampa через модуль `Catalog`:
- Плагин на ТВ: `http://192.168.1.14:9118/catalog.js` → источник **«Мой список»**
- 4 категории: Фильмы 360 · Новинки 34 · Мультфильмы 3 · Аниме 7
- Автообновление: cron `30 2 * * *` → `~/scripts/watchlist-catalog.sh`
⚠️ **Исходная формулировка шага 7 была неточной** («плагин, который ходит к библиотеке
как к источнику воспроизведения»). Уточнено Alex: задача — **отображение списка**, не плейбэк.
Механизм — встроенный модуль `Catalog`, свой плагин не писался.
**Осталось:** Alex добавляет плагин на ТВ пультом (1 минута, см. план).
## Журнал сессии 2026-09-22 (вторая часть)
@@ -241,47 +252,85 @@ curl -fsS "http://localhost:9118/version?type=hash"
**Отключить выбор источника:** Lampa → Настройки → Плагины → выключить `online.js`.
Останутся только торренты.
### Следующий шаг
### Следующий шаг — ✅ ВЫПОЛНЕН 2026-09-22
Шаг 7 плана — **плагин библиотеки** (watchlist в UI Lampa).
Детали — отдельный план `personal/plans/lampac-watchlist-plugin.md`.
Отдельно решается: [[family/how-to/tv-luna-send]] и [[family/how-to/htpc-webos-luna]].
Шаг 7 (watchlist в UI Lampa) **сделан**. Полный план и все питфоллы —
[[personal/plans/lampac-watchlist-plugin]]. Кратко:
### Где что лежит (шаги 1–2, финально)
- Включён встроенный модуль **`Catalog`** (`SkipModules` без него + `catalog: true`)
- Написан генератор `gen_watchlist.py`: `movies-watchlist.md` → JSON
- `init.conf`, `sites/`, `wwwroot/` смонтированы на HDD — правки переживают пересоздание
- Cron `30 2 * * *` → `~/scripts/watchlist-catalog.sh`
- Отдача: 4 категории — Фильмы 360 · Новинки 34 · Мультфильмы 3 · Аниме 7
⚠️ **Смонтирован `config-module/init.conf` — это исправляет шаг «init.conf без volume»**,
который раньше числился в открытых задачах.
Осталось на Alex: добавить на ТВ плагин `http://192.168.1.14:9118/catalog.js` (пультом).
Сопутствующие доки: [[family/how-to/tv-luna-send]], [[family/how-to/htpc-webos-luna]],
[[family/how-to/tv-lampac-plugin]].
### Где что лежит (финально)
```
Кра́кен: /srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac/
├── docker-compose.yml # lampac + встроенный TorrServer, порт 9118
├── config/ # → /lampac/config
├── cache/ # → /lampac/cache (кэш TorrServer)
└── data/ # → /lampac/data (БД JacRed)
├── docker-compose.yml # lampac + встроенный TorrServer, порт 9118
├── config/ # → /lampac/config
├── cache/ # → /lampac/cache (кэш TorrServer)
├── data/ # → /lampac/data (БД JacRed)
├── config-module/init.conf # → /lampac/init.conf:ro (включает Catalog)
├── catalog/sites/ # → /lampac/module/Catalog/sites
├── catalog/override/ # → /lampac/module/Catalog/override
├── wwwroot/ # → /lampac/wwwroot (JSON-каталог)
└── scripts/gen_watchlist.py # генератор .md → JSON
```
Содержимое `docker-compose.yml`:
```yaml
services:
lampac:
image: ghcr.io/lampac-nextgen/lampac:latest
container_name: lampac
platform: linux/arm64
restart: unless-stopped
ports:
- "9118:9118"
environment:
- TZ=Asia/Bishkek
- LANG=ru_RU.UTF-8
volumes:
- ./config:/lampac/config
- ./cache:/lampac/cache
- ./data:/lampac/data
```
Полный актуальный compose — в [[personal/tech/lampac-deployment]] (раздел docker-compose).
Здесь не дублирую: файл меняется, а копия в двух местах гарантированно рассинхронизируется.
Управление: `cd /srv/.../lampac && docker compose {up -d,logs -f,restart,down}`.
Правка compose — без `sudo` (каталог `kraken:kraken`), но создание каталогов — через `sudo mkdir`.
## Журнал сессии 2026-09-22
## Журнал сессии 2026-09-22 (третья часть) — каталог watchlist
**Итог: правки плана выполнены, шаги 1–6 НЕ начаты.**
**Шаг 7 выполнен. Все шаги 1–7 базового плана закрыты (кроме шага 3 — лимит кэша).**
Работа велась по отдельному плану [[personal/plans/lampac-watchlist-plugin]].
Ключевое, что касается этого документа:
**Изменён `docker-compose.yml`** — добавлено 4 монтирования (7 всего):
| Монтирование | Зачем |
|---|---|
| `./config-module/init.conf:/lampac/init.conf:ro` | включает модуль Catalog |
| `./catalog/sites:/lampac/module/Catalog/sites` | описания каталогов |
| `./catalog/override:/lampac/module/Catalog/override` | переопределения |
| `./wwwroot:/lampac/wwwroot` | JSON-каталог отдаётся статикой |
**Создан `config-module/init.conf`** — минимальный, перекрывает `base.conf`:
`SkipModules` без `Catalog` + `LampaWeb.initPlugins.catalog: true`.
🔴 **Питфолл `SkipModules`:** наш `init.conf` **перекрывает** `base.conf`, а не сливается с ним.
Поэтому список `SkipModules` надо повторять **целиком** — иначе модули из base вернутся к дефолту.
### Ошибки сессии
1. 🔴 **Придумал вопрос «что играть по клику»** (развилка A/B/C про источник воспроизведения).
Alex: «я чё тебе сказал в постановке задачи». Задача была — **отображение**, не плейбэк.
**Урок:** в постановке было сказано буквально; развилки сверх неё — выдумка.
2. 🔴 **Полез разбирать `luna-send` наугад**, не прочитав доки по ТВ. Они уже были:
[[family/how-to/tv-luna-send]], [[family/how-to/htpc-webos-luna]] — там прямо описан
питфолл «пишет в tty, нужен `script -q -c`». Alex: «Доки по тв читал?!».
**Урок:** перед работой с хостом — искать док в vault, а не экспериментировать.
### Что осталось
1. **Лимит кэша TorrServer** (шаг 3) — дефолт. Единственный незакрытый шаг. Критичность низкая.
2. **Alex добавляет плагин на ТВ** пультом — `catalog.js`.
3. **Проверка полосы на торрент-источнике** — не сделана.
## Журнал сессии 2026-09-22
### Что сделано