116 lines
6.3 KiB
Markdown
116 lines
6.3 KiB
Markdown
---
|
||
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]]'
|
||
- '[[family/how-to/tv-luna-send]]'
|
||
---
|
||
|
||
# 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 отвечает».
|
||
9. 🔴 **Lampa на ТВ ставится по SSH, флешка и Media Station X НЕ нужны.** См. [[personal/tech/lampac-deployment]].
|
||
10. 🔴 **`luna-send` по SSH печатает хелп вместо ответа** — обернуть в `script -q -c "..." /tmp/o.txt`.
|
||
11. Фактический appId Lampa на ТВ — **`com.lampac.tv`** (не `org.lampa.tv` из запроса установки).
|
||
|
||
## Инвентаризация диска и удаление (добавлено 2026-09-22)
|
||
|
||
Полная таблица: [[personal/plans/kraken-media-inventory-cleanup]].
|
||
|
||
12. 🔴 **arr индексирует только 252 ГБ из 1236** (21%). Остальное — ручные закачки,
|
||
невидимые в UI Radarr/Sonarr. «Нет в Radarr» ≠ «нет на диске».
|
||
13. 🔴 **`downloads/complete/sonarr/` — завершённые раздачи, не удалённые после импорта.**
|
||
Байт-в-байт дубли библиотеки = **78,6 ГБ зря**. Самый безопасный кандидат на снос.
|
||
14. 🔴 **Матч с watchlist — только СТРОГОЕ равенство** нормализованных названий, `len >= 4`.
|
||
Подстрочный матч раздувает счёт: 42 позиции / 811 ГБ вместо реальных 29 / 456 ГБ.
|
||
15. 🔴 **В `watchlist.json` нет поля `tmdb_id`** — он в `href`
|
||
(`.../movie/424781`), вынимать регексом `/(\d{2,9})/?$`.
|
||
16. 🔴 **`missing.json` (30 позиций с `❓`) не пересекается с диском** — это рукописные
|
||
заметки в списке. «Недоступно в Lampa» для файлов = **нет в watchlist**, не «нет в TMDB».
|
||
17. Группировка 802 файлов: файлы в корне `movies`/`cartoons`/`documentaries` — каждая своя
|
||
позиция (иначе «Вивариум» 1,46 ГБ склеивается в группу на 135 ГБ).
|
||
18. Удаление только через API arr-стека; `deleteFiles=true` — проверять, что путь внутри
|
||
библиотеки. Дамп API в файл перед операцией.
|
||
|
||
## Установка Lampa на ТВ (сжато)
|
||
|
||
```bash
|
||
# скачать ipk на ТВ
|
||
ssh root@192.168.1.70 'curl -sS -o /tmp/lampa.ipk "http://192.168.1.14:9118/lg.ipk"'
|
||
|
||
# установить (только через com.webos.appInstallService + обёртку script)
|
||
ssh root@192.168.1.70 'rm -f /tmp/i.txt; script -q -c \
|
||
"luna-send -n 1 -f luna://com.webos.appInstallService/dev/install \
|
||
{\"id\":\"org.lampa.tv\",\"ipkUrl\":\"/tmp/lampa.ipk\",\"subscribe\":true}" /tmp/i.txt; cat /tmp/i.txt'
|
||
|
||
# запустить
|
||
ssh root@192.168.1.70 'rm -f /tmp/l.txt; script -q -c \
|
||
"luna-send -n 1 -f luna://com.webos.applicationManager/launch {\"id\":\"com.lampac.tv\"}" /tmp/l.txt'
|
||
```
|
||
|
||
ТВ: `root@192.168.1.70`, ключ `~/.ssh/konka_webos`, webOS 5.4.2, порты `22`/`3000`/`3001`.
|
||
|
||
## Проверка
|
||
|
||
```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 ГБ.
|
||
- 🔴 Удаление медиа на Кра́кене — ждёт выбора Alex (3 варианта в
|
||
[[personal/plans/kraken-media-inventory-cleanup]], раздел «Что дальше»).
|
||
- Шаг 7 — watchlist в UI Lampa: [[personal/plans/lampac-watchlist-plugin]].
|
||
- Секции Watchlist внутри CUB-фида — инжект залит, приёмка в UI не подтверждена.
|
||
|
||
## Реальный скилл (файл)
|
||
|
||
`~/.hermes/hermes-whale/skills/devops/lampac-kraken-deploy/SKILL.md`
|
||
|
||
✅ **Синхронизирован 2026-09-22 (вечер).** Пункты 9–11 (установка Lampa на ТВ по SSH,
|
||
питфолл `luna-send`+`script`, appId `com.lampac.tv`) и новые 12–18 (инвентаризация диска,
|
||
дубли `downloads/complete`, строгий матч с watchlist, `tmdb_id` в `href`) перенесены
|
||
в файл скилла, включая раздел «Pillar: disk inventory & deletion candidates».
|