176 lines
6.2 KiB
Markdown
176 lines
6.2 KiB
Markdown
---
|
||
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.
|