[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:
Alexey Martemyanov committed 2026-09-22 10:47:26 +06:00
1 parent 6275a70ff4
commit 414b4eeca6
3 files changed
+237

No files matched your search

+175
View File
@@ -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.