[2026-09-22] eagle: personal/plans/lampac-kraken.md personal/tech/lampac-deployment.md personal/tech/skill-lampac-kraken-deploy.md
This commit is contained in:
1 parent
6275a70ff4
commit
414b4eeca6
3 files changed
+237
No files matched your search
@@ -301,6 +301,7 @@ services:
|
||||
|
||||
## Связанные
|
||||
|
||||
- [[personal/tech/lampac-deployment]] — технический справочник: compose, команды, питфоллы, порты
|
||||
- [[personal/tech/multistream-single-flow-limit]] — исследование, ранжирование путей
|
||||
- [[personal/tech/inter-site-throughput-taiga-to-mac]] — замеры полосы и RTT
|
||||
- [[family/how-to/kraken-network]] — линки ТВ
|
||||
@@ -0,0 +1,175 @@
|
||||
---
|
||||
title: Lampac — развёртывание и эксплуатация (Кра́кен)
|
||||
created: '2026-09-22'
|
||||
updated: '2026-09-22'
|
||||
type: tech
|
||||
namespace: personal
|
||||
tags:
|
||||
- lampac
|
||||
- torrserver
|
||||
- docker
|
||||
- kraken
|
||||
- streaming
|
||||
- webos
|
||||
related:
|
||||
- '[[personal/plans/lampac-kraken]]'
|
||||
- '[[personal/tech/multistream-single-flow-limit]]'
|
||||
- '[[family/how-to/kraken-network]]'
|
||||
---
|
||||
|
||||
# Lampac — развёртывание и эксплуатация (Кра́кен)
|
||||
|
||||
> Технический справочник. Развёрнуто 2026-09-22. План и статус шагов — [[personal/plans/lampac-kraken]].
|
||||
|
||||
## Что это
|
||||
|
||||
`lampac-nextgen/lampac` (MIT, .NET 10) — серверный бэкенд для Lampa. Один контейнер, порт **9118**.
|
||||
|
||||
**Внутри (всё в одном образе):**
|
||||
- **TorrServer** — subprocess, кэш раздач
|
||||
- **JacRed** — Jackett-совместимый индексатор
|
||||
- **LampaWeb** — веб-морда
|
||||
- **TmdbProxy**, **DLNA**, **Sync**
|
||||
|
||||
🔴 **TorrServer встроенный. Отдельный контейнер не нужен.** Проверено 2026-09-22:
|
||||
в логах первого старта видно `compilation TorrServer`. Внешний TS — лишняя сущность.
|
||||
|
||||
## Расположение на Кра́кене
|
||||
|
||||
```
|
||||
/srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac/
|
||||
├── docker-compose.yml
|
||||
├── config/ → /lampac/config
|
||||
├── cache/ → /lampac/cache (кэш TorrServer — только сюда)
|
||||
└── data/ → /lampac/data (БД JacRed)
|
||||
```
|
||||
|
||||
Владелец `kraken:kraken`, права `755`.
|
||||
|
||||
⚠️ Всё пишущее — на data-диск (1.8T). **НЕ на SD** (`/`, 14G, 8.6G свободно).
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
⚠️ В контейнере рабочий каталог `/lampac`, часть файлов читается **из корня**, не из `config/`.
|
||||
|
||||
## Управление
|
||||
|
||||
```bash
|
||||
ssh kraken
|
||||
cd /srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac
|
||||
|
||||
docker compose up -d
|
||||
docker compose logs -f
|
||||
docker compose restart
|
||||
docker compose down
|
||||
```
|
||||
|
||||
Правка `docker-compose.yml` — без `sudo` (каталог `kraken:kraken`).
|
||||
Создание новых каталогов в корне диска — **через `sudo`** (корень `root:root`). У `kraken` sudo без пароля.
|
||||
|
||||
## Проверка работоспособности
|
||||
|
||||
```bash
|
||||
curl -sS --max-time 20 "http://localhost:9118/version?type=hash"
|
||||
# → 46b29e1fe8fa6021cd83e75c41abffb7 (для текущего :latest)
|
||||
```
|
||||
|
||||
По сети: `http://192.168.1.14:9118/version?type=hash` — то же значение.
|
||||
|
||||
## ⚠️ Питфоллы
|
||||
|
||||
### 1. Первый старт долгий (~4 минуты)
|
||||
|
||||
Контейнер компилирует и грузит ~40 native-модулей:
|
||||
`compilation LampaWeb`, `DLNA`, `GStreamer`, `Sync`, `TorrServer`, ... затем `loaded module: <имя>`.
|
||||
|
||||
Пока идёт загрузка, HTTP **рвёт соединение**:
|
||||
```
|
||||
curl: (56) Recv failure: Connection reset by peer
|
||||
```
|
||||
|
||||
🔴 **`health: healthy` не означает готовность HTTP.** Статус встаёт раньше.
|
||||
Признак готовности — лог **`Configure complete`** (идёт после последнего `loaded module:`).
|
||||
|
||||
**Не перезапускать контейнер, не считать это поломкой.** Просто ждать.
|
||||
|
||||
### 2. `docker manifest inspect` с Mac отдаёт `denied`
|
||||
|
||||
GHCR требует авторизацию при обращении с Mac. Проверять наличие `linux/arm64` **из Кра́кена**:
|
||||
```bash
|
||||
ssh kraken 'docker manifest inspect ghcr.io/lampac-nextgen/lampac:latest' | jq -r '.manifests[].platform | .os + "/" + .architecture'
|
||||
# linux/amd64
|
||||
# linux/arm64 ← есть, сборка из исходников не нужна
|
||||
# unknown/unknown
|
||||
# unknown/unknown
|
||||
```
|
||||
|
||||
### 3. Шаблон логов первого старта
|
||||
|
||||
```
|
||||
compilation Alloha
|
||||
compilation LampaWeb
|
||||
...
|
||||
loaded module: Vibix
|
||||
loaded module: TorrServer
|
||||
...
|
||||
Configure complete ← HTTP начинает отвечать
|
||||
```
|
||||
|
||||
## Сеть
|
||||
|
||||
| Хост | IP |
|
||||
|---|---|
|
||||
| Кра́кен (eth0) | `192.168.1.14` (второй адрес `192.168.1.15`) |
|
||||
| ТВ LG | `192.168.1.70` |
|
||||
| Mac Alex | `192.168.1.57` |
|
||||
|
||||
Один сегмент `192.168.1.x` — туннели и проброс портов не нужны.
|
||||
Подробнее: [[family/how-to/kraken-network]].
|
||||
|
||||
## Занятые порты на Кра́кене (2026-09-22)
|
||||
|
||||
`7878` Radarr · `8096` Jellyfin · `8191` FlareSolverr · `8989` Sonarr · `9000` Portainer ·
|
||||
`9091` Transmission · `9696` Prowlarr · `51413` Transmission (UDP) · **`9118` Lampac**
|
||||
|
||||
Выбор порта — `docker compose config` + `sudo ss -tlnp` перед деплоем.
|
||||
|
||||
## Интеграция с Lampa (ТВ)
|
||||
|
||||
- Плагин: `http://192.168.1.14:9118/online.js`
|
||||
- TorrServer в Lampa: Настройки → TorrServer → «Использовать основную ссылку» → `http://192.168.1.14:9118`
|
||||
- Буфер плеера: 50–100 МБ
|
||||
- UE на LG: `.ipk` с флешки на розничных телевизорах **не работает** → ставить через **Media Station X**
|
||||
- `/lg.ipk` отдаёт сам Lampac
|
||||
|
||||
## Откат
|
||||
|
||||
```bash
|
||||
cd /srv/.../lampac && docker compose down
|
||||
sudo rm -rf /srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac
|
||||
```
|
||||
|
||||
Lampac изолирован — остальной стек Кра́кена не затрагивается.
|
||||
|
||||
## Что осталось
|
||||
|
||||
1. **Лимит кэша TorrServer** — сейчас дефолт. Задать ~20 ГБ, чтобы не сожрать 396 ГБ свободных.
|
||||
2. **Подключение Lampa на ТВ** — шаг 6 плана, на стороне Alex.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
title: Skill — lampac-kraken-deploy
|
||||
created: '2026-09-22'
|
||||
updated: '2026-09-22'
|
||||
type: tech
|
||||
namespace: personal
|
||||
tags:
|
||||
- skill
|
||||
- lampac
|
||||
- docker
|
||||
- kraken
|
||||
- devops
|
||||
related:
|
||||
- '[[personal/tech/lampac-deployment]]'
|
||||
- '[[personal/plans/lampac-kraken]]'
|
||||
---
|
||||
|
||||
# Skill: `lampac-kraken-deploy`
|
||||
|
||||
> Зеркало скилла `devops/lampac-kraken-deploy`. Файл скилла:
|
||||
> `~/.hermes/hermes-whale/skills/devops/lampac-kraken-deploy/SKILL.md`
|
||||
|
||||
## Когда загружать
|
||||
|
||||
- Деплой/рестарт/отладка Lampac на Кра́кене
|
||||
- Свежий контейнер `healthy`, но `curl :9118` → `Connection reset by peer`
|
||||
- Подключение Lampa на LG ТВ
|
||||
- Вопрос «нужен ли отдельный контейнер TorrServer»
|
||||
|
||||
Полная техническая справка: [[personal/tech/lampac-deployment]].
|
||||
|
||||
## Ключевое из скилла
|
||||
|
||||
1. **Хост — Кра́кен** (`ssh kraken`), aarch64 Debian 12. Не TrueNAS.
|
||||
2. Образ содержит `linux/arm64` — сборка из исходников не нужна.
|
||||
3. 🔴 **TorrServer встроенный** — второй контейнер не ставить.
|
||||
4. Каталоги в корне диска — только через `sudo mkdir` (корень `root:root`, sudo без пароля).
|
||||
5. 🔴 **Первый старт ~4 минуты.** `Connection reset by peer` — норма, ждать `Configure complete`.
|
||||
`healthy` ≠ готовность HTTP.
|
||||
6. `docker manifest inspect` с Mac → `denied`; проверять **из Кра́кена**.
|
||||
7. `docker compose` только как плагин (v5.1.3), не `docker-compose`.
|
||||
8. Приёмка = играет 5+ минут на ТВ, а не «API отвечает».
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
ssh kraken 'docker ps --filter name=lampac --format "{{.Names}} {{.Status}} {{.Ports}}"'
|
||||
ssh kraken 'curl -sS "http://localhost:9118/version?type=hash"'
|
||||
ssh kraken 'curl -sS "http://192.168.1.14:9118/version?type=hash"'
|
||||
```
|
||||
|
||||
## Откат
|
||||
|
||||
```bash
|
||||
ssh kraken 'cd /srv/.../lampac && docker compose down'
|
||||
ssh kraken 'sudo rm -rf /srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac'
|
||||
```
|
||||
|
||||
## Не закрыто
|
||||
|
||||
- Лимит кэша TorrServer — дефолт. Рекомендуется ~20 ГБ.
|
||||
Reference in new issue
Block a user