From 414b4eeca6981d66b8a3f4540358f85b4b99ed4c Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Tue, 22 Sep 2026 10:47:26 +0600 Subject: [PATCH] [2026-09-22] eagle: personal/plans/lampac-kraken.md personal/tech/lampac-deployment.md personal/tech/skill-lampac-kraken-deploy.md --- personal/plans/lampac-kraken.md | 1 + personal/tech/lampac-deployment.md | 175 ++++++++++++++++++++ personal/tech/skill-lampac-kraken-deploy.md | 61 +++++++ 3 files changed, 237 insertions(+) create mode 100644 personal/tech/lampac-deployment.md create mode 100644 personal/tech/skill-lampac-kraken-deploy.md diff --git a/personal/plans/lampac-kraken.md b/personal/plans/lampac-kraken.md index 3e9ce5af..71726ca1 100644 --- a/personal/plans/lampac-kraken.md +++ b/personal/plans/lampac-kraken.md @@ -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]] — линки ТВ diff --git a/personal/tech/lampac-deployment.md b/personal/tech/lampac-deployment.md new file mode 100644 index 00000000..6805f63c --- /dev/null +++ b/personal/tech/lampac-deployment.md @@ -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. diff --git a/personal/tech/skill-lampac-kraken-deploy.md b/personal/tech/skill-lampac-kraken-deploy.md new file mode 100644 index 00000000..717a66b4 --- /dev/null +++ b/personal/tech/skill-lampac-kraken-deploy.md @@ -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 ГБ.