[2026-09-22] eagle: personal/plans/lampac-kraken.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 10:42:23 +06:00
1 parent 4d147c1731
commit 6275a70ff4
1 file changed
+100 -4
+100 -4
View File
@@ -4,7 +4,7 @@ created: '2026-09-21'
updated: '2026-09-22'
type: plan
namespace: personal
status: proposed
status: in-progress
tags:
- lampac
- torrserver
@@ -107,12 +107,22 @@ Host kraken
### 3. Конфиг TorrServer внутри Lampac
- лимит кэша (напр. 20 ГБ) — чтобы не сожрал 404 ГБ
🔴 **TorrServer у Lampac ВСТРОЕННЫЙ** (subprocess внутри контейнера, виден в логах как `compilation TorrServer`).
Отдельный контейнер TorrServer **не ставить** — выдуманный шаг, не из плана.
Вопрос Alex: «Если имеет встроенный нахуя внешний?»
### 4. Первый запуск
```
curl -fsS "http://localhost:9118/version?type=hash"
```
Пусто/ошибка → `docker logs lampac`.
⚠️ **Первый старт долгий.** Контейнер компилирует/грузит ~40 native-модулей
(`compilation LampaWeb`, `DLNA`, `GStreamer`, `Sync`, `TorrServer`, ... затем `loaded module: ...`).
Соединение на `curl` рвётся с `Recv failure: Connection reset by peer`, пока идёт загрузка.
Статус `healthy` при этом уже стоит — **не признак готовности HTTP**.
Не дёргать контейнер, ждать `loaded module:` последнего модуля.
### 5. Доступ ТВ к Lampac
Кра́кен (`192.168.1.14`) и ТВ (`192.168.1.70`) — **в одном сегменте `192.168.1.x`**,
межроутерного пути нет. ТВ должен достать `9118` напрямую.
@@ -133,6 +143,92 @@ curl -fsS "http://localhost:9118/version?type=hash"
- Механизм: плагин Lampa, который ходит к библиотеке как к источнику воспроизведения
- Детали механизма — **отдельный план** после приёмки шагов 1–6
## Журнал сессии 2026-09-22 (вторая часть)
**Выполнено: шаги 1, 2, 4, 5. Осталось: 3 (лимит кэша) и 6 (ТВ — на Alex).**
### Результаты
| Шаг | Статус |
|---|---|
| 1. Каталоги на HDD | ✅ `/srv/...6194539b.../lampac/{config,cache,data}`, `kraken:kraken`, 755 |
| 2. docker-compose.yml | ✅ развёрнут, `docker compose config --quiet` → VALID |
| 3. Лимит кэша TorrServer | ⏳ **единственный незакрытый шаг на стороне сервера** — встроенный TS работает на дефолтах |
| 4. Первый запуск | ✅ `curl /version?type=hash` → `46b29e1fe8fa6021cd83e75c41abffb7` |
| 5. Доступ с ТВ | ✅ `http://192.168.1.14:9118/version?type=hash` отвечает с LAN-IP |
| 6. Lampa на ТВ | ⏳ не подключена — **ждёт Alex** |
### Факты, добытые по ходу
1. **`ghcr.io/lampac-nextgen/lampac:latest` содержит `linux/arm64`** →
сборка из исходников не нужна. Риск «ARM64-образа нет» из таблицы рисков — **снят**.
(`docker manifest inspect` с Mac отдаёт `denied` — проверять **из Кра́кена**.)
2. Порт `9118` был свободен. Занятые на Кра́кене: `7878, 8096, 8191, 8989, 9000, 9091, 9696, 51413`.
3. `docker compose` — плагин **v5.1.3**, отдельного `docker-compose` нет.
4. Каталоги на `/srv/...6194539b.../` требуют **`sudo`** (корень диска `root:root`).
У `kraken` есть `sudo` **без пароля**.
5. Порт `9118` слушается на **`0.0.0.0`** ✅ — шаг 5 по этой части пройден.
6. **Lampac отвечает по LAN-IP:** `http://192.168.1.14:9118/version?type=hash` → `46b29e1fe8fa6021cd83e75c41abffb7`.
Инициализация завершается логом **`Configure complete`** — после него HTTP начинает отвечать.
7. Кра́кен имеет два LAN-адреса: `192.168.1.14` и `192.168.1.15`. Mac Alex — `192.168.1.57`.
ТВ `192.168.1.70` — один сегмент, доступ прямой.
### Ошибки сессии (не повторять)
1. 🔴 **Придумал шаг «поставить TorrServer отдельным контейнером».** TorrServer у Lampac
**встроенный**. Реакция Alex: «Если имеет встроенный нахуя внешний?» — выдумка сверх плана.
2. 🔴 **Затёр `docker-compose.yml` при правке** — вместо добавления сервиса перезаписал файл
целиком. На Кра́кене рабочий файл цел (правил локальную копию), но правило то же:
**перед правкой читать файл, а не перезаписывать по памяти.**
3. Локальная копия `/Users/admin/lampac-deploy/` — снесена (была 0 байт после неудачной правки).
Рабочий compose живёт только на Кра́кене.
**Урок:** шаг 3 плана («конфиг TorrServer внутри Lampac») — это **настройка существующего**,
а не установка второго. Читать план буквально.
### Следующий шаг
**Шаг 6 — подключение Lampa на ТВ `192.168.1.70`:**
1. Lampa через Media Station X (`.ipk` с флешки на розничных LG не работает)
2. Настройки → TorrServer → «Использовать основную ссылку» → `http://192.168.1.14:9118`
3. Плагин: `http://192.168.1.14:9118/online.js`
4. Буфер плеера: 50–100 МБ
5. Качество по скорости: до 10 Мбит → 720p; 10–25 → 1080p
Приёмка шага 6 = **играет без дёрганья 5+ минут**, битрейт ≤15 Мбит.
### Где что лежит (шаги 1–2, финально)
```
Кра́кен: /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`:
```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
```
Управление: `cd /srv/.../lampac && docker compose {up -d,logs -f,restart,down}`.
Правка compose — без `sudo` (каталог `kraken:kraken`), но создание каталогов — через `sudo mkdir`.
## Журнал сессии 2026-09-22
**Итог: правки плана выполнены, шаги 1–6 НЕ начаты.**
@@ -199,9 +295,9 @@ curl -fsS "http://localhost:9118/version?type=hash"
| Риск | Митигация |
|---|---|
| Кэш TorrServer съест диск | bind-mount на 1.8T + лимит кэша |
| ARM64-образ отсутствует | `docker manifest inspect`; иначе сборка из исходников |
| SD-карта кончится | всё пишущее — только на `/srv` |
| ТВ не достанет 9118 | один сегмент `192.168.1.x`; проверить bind на `0.0.0.0` |
| ARM64-образ отсутствует | ✅ **Проверено 2026-09-22: `linux/arm64` есть в манифесте.** Риск снят |
| SD-карта кончится | всё пишущее — только на `/srv` ✅ |
| ТВ не достанет 9118 | ✅ `0.0.0.0:9118`, ответ по `192.168.1.14:9118` проверен |
## Связанные