From ac721b6a227b4d2527c989bf83605a39814d242d Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 30 Oct 2026 15:27:44 +0600 Subject: [PATCH] [2026-10-30] eagle: family/how-to/truenas-infrastructure.md family/how-to/tv-lampac-plugin.md personal/plans/lampac-watched-to-watchlist.md personal/tech/konka-q85-novosibirsk.md personal/tech/lampac-deployment.md personal/tech/lampac-truenas.md --- family/how-to/truenas-infrastructure.md | 8 ++ family/how-to/tv-lampac-plugin.md | 11 ++- personal/plans/lampac-watched-to-watchlist.md | 13 ++- personal/tech/konka-q85-novosibirsk.md | 11 +++ personal/tech/lampac-deployment.md | 15 +++- personal/tech/lampac-truenas.md | 88 +++++++++++++++++++ 6 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 personal/tech/lampac-truenas.md diff --git a/family/how-to/truenas-infrastructure.md b/family/how-to/truenas-infrastructure.md index c37838ae..12c02fd1 100755 --- a/family/how-to/truenas-infrastructure.md +++ b/family/how-to/truenas-infrastructure.md @@ -1,5 +1,13 @@ # TrueNAS — инфраструктура +## Lampac и Konka — добавлено 2026-10-30 + +На TrueNAS развёрнут официальный Lampac1.87.3 (amd64), обычный Compose в `/mnt/RED_2TB/docker/lampac`, LAN `http://192.168.2.197:9118`; контейнеры `lampac` и `lampac-egress`. Клиент Konka Q85 в Новосибирске: `192.168.2.124`. Полная эксплуатационная заметка — [[personal/tech/lampac-truenas]]. + +Отдельный egress обслуживает TMDB и постеры через существующий маршрут Kraken; глобальный прокси видео не включён, общий `vless-proxy` не менялся. История хранится на TrueNAS; Kraken использует ограниченный HTTPS API в существующем Caddy-сайте `git.mallexxx.duckdns.org/lampac-history`. Синхронизации SQLite нет. Caddy применён через reload, без перезапуска общего сервиса. + +Каталог генерирует только Kraken и публикует готовые JSON через ограниченный SSH-ключ. NAS делает локальный ежедневный бэкап истории в04:27 по часовому поясу хоста, хранит30 дней. Для совместной работы uid950 бэкапа и uid1000 Lampac нужны mode0664/group1000 для `TimeCode.sql` и WAL/SHM; операция записи после бэкапа проверена. Остальные исторические сведения об инфраструктуре ниже этим изменением не переаудировались. + > ✅ **ДОМАШНЯЯ АВТОМАТИЗАЦИЯ ПЕРЕНЕСЕНА НА HP t610 (2026-09-14).** HA, zigbee2mqtt, mosquitto, mbusd, modbus-bridge **и flows Node-RED** переехали на **t610** (HA OS, `192.168.2.176`). Единый документ по t610 — [[family/how-to/home-automation]]. **✅✅ TrueNAS-стек автоматизации ПОГАШЕН 2026-09-14 (ночная сессия, §5-кватер-Л плана):** `homeassistant`, `mbusd`, `mosquitto`, `nodered`, `zigbee2mqtt`, `modbus-bridge`, `ser2net` → `docker stop` + `docker update --restart=no` (**НЕ удалены**, папки `docker/*` целы — откат = `docker start` + `--restart=unless-stopped`). Проверено: порты 502/1883/8123/1880 свободны, `mallexxx.*` = 200, MQTT на t610 живой. Причина переноса: TrueNAS на пределе RAM (17/21 ГБ). > > **2026-09-14 (вечер-2, обновлено вечер-13) — Caddy ПЕРЕКЛЮЧЁН, Node-RED ПЕРЕНЕСЁН:** diff --git a/family/how-to/tv-lampac-plugin.md b/family/how-to/tv-lampac-plugin.md index 499619e6..069d1900 100755 --- a/family/how-to/tv-lampac-plugin.md +++ b/family/how-to/tv-lampac-plugin.md @@ -5,6 +5,7 @@ related: - '[[family/how-to/tv-luna-send]]' - '[[family/how-to/htpc-webos-luna]]' - '[[personal/tech/lampac-deployment]]' + - '[[personal/tech/lampac-truenas]]' tags: - tv - webos @@ -14,10 +15,18 @@ tags: - how-to title: tv-lampac-plugin — подключение плагина Lampa на LG TV по SSH type: how-to -updated: '2026-09-22' +updated: '2026-10-30' --- # tv-lampac-plugin.sh — подключение плагина Lampa к Lampac на LG TV +## 2026-10-30: отдельная установка в Новосибирске + +Для Konka Q85 `192.168.2.124` / webOS7.5.6 используется TrueNAS `http://192.168.2.197:9118`, приложение `com.lampac.tv`. Установка выполнена через существующий Homebrew, без включения SSH на ТВ. Инструкция и проверенные настройки — [[personal/tech/lampac-truenas]], сведения об устройстве — [[personal/tech/konka-q85-novosibirsk]]. + +Для встроенных постеров нужны `proxy_tmdb=true`, `proxy_tmdb_auto=false` на клиенте и серверный прокси TMDB/постеров. Видео глобально через прокси не направляется. Проверять обе группы изображений: CUB/TMDB и наш Catalog; успешный постер одной группы не доказывает работу другой. + +Рецепты ниже относятся прежде всего к прежнему телевизору Kraken `192.168.1.70`; не переносить его SSH/PTY-особенности на Konka без проверки. + > Создан 2026-09-22. Проблема, которую решает: добавить плагин/источник в Lampa на ТВ > **без пульта**, автоматически по SSH. > Связано: [[family/how-to/tv-luna-send]], [[family/how-to/htpc-webos-luna]], [[personal/tech/lampac-deployment]]. diff --git a/personal/plans/lampac-watched-to-watchlist.md b/personal/plans/lampac-watched-to-watchlist.md index 598da83a..53e76e8e 100755 --- a/personal/plans/lampac-watched-to-watchlist.md +++ b/personal/plans/lampac-watched-to-watchlist.md @@ -3,8 +3,8 @@ title: Отметка «просмотрено» из Lampa → watchlist.md type: plan status: implemented-bug-open-markwatched-insert namespace: personal -created: 2026-09-23T00:00:00.000Z -updated: '2026-09-27T00:00:00.000Z' +created: '2026-09-23T00:00:00.000Z' +updated: '2026-10-30' tags: - lampac - lampa @@ -17,10 +17,19 @@ related: - '[[family/projects/watchlist-automation]]' - '[[personal/plans/lampac-watchlist-plugin]]' - '[[family/documents/movies-watchlist]]' + - '[[personal/tech/lampac-truenas]]' --- # Отметка «просмотрено» из Lampa → `movies-watchlist.md` +## Обновление источника истории — 2026-10-30 + +Активная TimeCode перенесена на TrueNAS; все 9 записей сохранены. Kraken читает общий HTTPS dump API через приватную переменную `LAMPAC_TIMECODE_DB`; поддержка API реализована и запушена в [watchlist-sync, 3810d77](https://github.com/mallexxx/watchlist-sync/commit/3810d77). Код развёрнут на Kraken, dry-run прочитал9 записей без изменений списка. + +Единственный писатель Obsidian и генератор каталога остаётся на Kraken; на NAS публикуются готовые JSON. Синхронизации SQLite нет. Локальная SQLite Kraken сохранена для отката и больше не является активным источником ночного шага. Реальная API-запись и сохранность прогресса проверены до/после NAS-бэкапа. + +Актуальная схема, права WAL/SHM и бэкапы — [[personal/tech/lampac-truenas]]. Ниже сохранена история предыдущей реализации и её отдельных замечаний; это обновление меняет источник данных и не заявляет исправление всех исторических вопросов разметки списка. + > **Проблема (Alex, 2026-09-23):** «А у нас из лампы уходят отметки просмотрено в список галочками как было в jellyfin?» > Ответ: **нет**. Задача — сделать, чтобы уходили. diff --git a/personal/tech/konka-q85-novosibirsk.md b/personal/tech/konka-q85-novosibirsk.md index 781389d5..eddcbc4b 100644 --- a/personal/tech/konka-q85-novosibirsk.md +++ b/personal/tech/konka-q85-novosibirsk.md @@ -13,9 +13,20 @@ tags: related: - '[[personal/tech/home-network-config]]' - '[[family/how-to/htpc-webos-luna]]' + - '[[personal/tech/lampac-truenas]]' --- # Konka Q85 — Новосибирск: статус и изменения +## Lampac установлен и проверен — 2026-10-30 + +Установлен `com.lampac.tv` версии1.0.0 через существующий Homebrew Channel с проверкой SHA256. Сервер и сохранённый `lampac_url`: `http://192.168.2.197:9118` (TrueNAS). Полная схема: [[personal/tech/lampac-truenas]]. + +Настройки клиента: **`proxy_tmdb=true`, `proxy_tmdb_auto=false`**. Автоопределение региона выключало прокси и ломало встроенные постеры, хотя Catalog уже был настроен. На сервере прокси отдельно включён для TMDB API/изображений, `posterApi` и `serverproxy.image`; глобальный прокси видео не включён. + +Подтверждены поиск «дюна» через клавиатуру без JavaScript-ошибок, 7 встроенных и28 собственных постеров (сломанных0), начало прямого воспроизведения тестового H.264640×360 с NAS (`readyState=4`, ошибок нет). Длительное воспроизведение/онлайн-раздача и звук на слух отдельно не подтверждены. Общая история на TrueNAS через API; репликации SQLite нет. + +При работе Lampac доступна CDP-цель9998: выбирать по URL с `com.lampac.tv`, ждать `appready`. Root-вызов Homebrew через `PalmServiceBridge` проверен также из контекста установленного Lampac; SSH/Telnet на ТВ ради этого не включали. Диагностические ответы не выводить поверх приложения. Временные HTTP-установщик на роутере18085 и SSH-перенаправления после работы удалены. Настройки root/privacy ниже не менялись. + Состояние проверено **2026-10-30** во время настройки телевизора. Местоположение — Новосибирск, по указанию владельца. Это отдельный телевизор; не путать с ТВ `192.168.1.70` / webOS 5.4.2 из [[family/how-to/htpc-webos-luna]]. ## Устройство и сеть diff --git a/personal/tech/lampac-deployment.md b/personal/tech/lampac-deployment.md index 6f42db8c..0a199139 100755 --- a/personal/tech/lampac-deployment.md +++ b/personal/tech/lampac-deployment.md @@ -1,7 +1,7 @@ --- title: Lampac — развёртывание и эксплуатация (Кра́кен) created: '2026-09-22' -updated: '2026-09-25' +updated: '2026-10-30' type: tech namespace: personal tags: @@ -21,10 +21,23 @@ related: - '[[personal/tech/multistream-single-flow-limit]]' - '[[family/how-to/kraken-network]]' - '[[family/how-to/tv-luna-send]]' + - '[[personal/tech/lampac-truenas]]' --- # Lampac — развёртывание и эксплуатация (Кра́кен) +## Актуальная схема на 2026-10-30: Kraken + TrueNAS + +Рабочая схема, адреса, настройки и восстановление — [[personal/tech/lampac-truenas]]. Официальный Lampac1.87.3: Kraken arm64, TrueNAS amd64; наш репозиторий — аддон, не форк сервера. Репозиторий и инструкция: [lampac-scripts/deploy](https://git.mallexxx.duckdns.org/git_admin/lampac-scripts/src/branch/main/deploy/README.md). + +На TrueNAS приложение работает в `/mnt/RED_2TB/docker/lampac`, LAN `http://192.168.2.197:9118`; клиент Konka Q85 в Новосибирске (`192.168.2.124`) установлен и проверен. Прокси только метаданных/постеров: отдельный `lampac-egress` через Kraken; глобальный прокси видео не включён. На Konka обязательно `proxy_tmdb=true`, `proxy_tmdb_auto=false`; настроены также `tmdb.proxyapi/proxyimg`, `posterApi`, `serverproxy.image`. + +Общая TimeCode теперь на TrueNAS, Kraken обращается через HTTPS API с отдельным `history_key` и тем же `uid`. Синхронизации SQLite нет; 9 записей сохранены. Генератор каталога/писатель Obsidian один, на Kraken; на NAS передаются только готовые JSON. Бэкап NAS учитывает uid950/uid1000: БД/WAL/SHM mode0664, group1000. Запись после бэкапа проверена. + +Ошибка поиска `title.toLowerCase()` исправлена в Catalog-аддоне: discovery каждого источника привязан к имени каталога, отдельная повторная регистрация поиска убрана. Проверены реальный поиск на ТВ, встроенные и собственные постеры, прямое тестовое воспроизведение. Подробные границы проверки — в новой заметке. + +Ниже сохранена история настройки Kraken за сентябрь; прежние указания читать активную историю из локальной SQLite Kraken заменены схемой выше. + > Технический справочник. Развёрнуто 2026-09-22. План и статус шагов — [[personal/plans/lampac-kraken]]. ## 🔴 2026-09-25: деплой `plugin.js` модуля Catalog — контракт и подводные камни diff --git a/personal/tech/lampac-truenas.md b/personal/tech/lampac-truenas.md new file mode 100644 index 00000000..a6c5167c --- /dev/null +++ b/personal/tech/lampac-truenas.md @@ -0,0 +1,88 @@ +--- +title: Lampac на TrueNAS и Konka Q85 — рабочая схема +created: '2026-10-30' +updated: '2026-10-30' +type: tech +namespace: personal +tags: + - lampac + - truenas + - konka + - webos + - timecode +related: + - '[[personal/tech/lampac-deployment]]' + - '[[personal/tech/konka-q85-novosibirsk]]' + - '[[family/how-to/truenas-infrastructure]]' +--- +# Lampac на TrueNAS и Konka Q85 — рабочая схема + +Проверено 2026-10-30. Lampac развёрнут на TrueNAS, клиент установлен на Konka Q85 в Новосибирске. Это аддон к официальному серверу, не форк Lampac. + +## Серверы и исходники + +- TrueNAS: `truenas_admin@mallexxx.duckdns.org`, каталог `/mnt/RED_2TB/docker/lampac`, адрес приложения `http://192.168.2.197:9118`. +- Обычный Docker Compose, не TrueNAS Apps. Контейнер `lampac`: официальный образ `ghcr.io/lampac-nextgen/lampac:1.87.3`, amd64, лимиты 2 ГБ RAM / 1 CPU, порт опубликован только на LAN-адресе. GPU-транскодирование не настроено. +- Kraken остаётся на официальном arm64-образе 1.87.3 и прежнем адресе `http://192.168.1.14:9118`. +- Mac: `/Users/admin/Developer/lampac-scripts`, ветка `main`, [Gitea](https://git.mallexxx.duckdns.org/git_admin/lampac-scripts). +- Генератор: `/Users/admin/Developer/watchlist-sync`, ветка `main`, [GitHub](https://github.com/mallexxx/watchlist-sync). +- Точные Compose, init.conf, шаблоны и инструкция восстановления — [deploy/README.md](https://git.mallexxx.duckdns.org/git_admin/lampac-scripts/src/branch/main/deploy/README.md). Приватные ключи и рабочие конфиги с секретами в git не добавляются. + +## Konka и встроенные постеры + +Konka Q85: `192.168.2.124`, webOS 7.5.6; приложение `com.lampac.tv` версии 1.0.0 установлено через существующий Homebrew Channel с проверкой SHA256 пакета. Его `lampac_url` в localStorage: `http://192.168.2.197:9118`. Настройку root/privacy не меняли; Developer Mode не устанавливали. + +Пустые постеры имели два отдельных условия: NAS не получал TMDB напрямую, а клиентская автоматика могла выключать прокси. На ТВ сохранены **`proxy_tmdb=true` и `proxy_tmdb_auto=false`**. Одной настройки серверного poster fetcher недостаточно: при выключенном клиентском флаге CUB обращается к `image.tmdb.org` напрямую. + +На NAS отдельный контейнер `lampac-egress` предоставляет SOCKS только внутри сети Lampac, без опубликованного порта. Он использует существующий авторизованный маршрут `kraken-user` через Caddy/VLESS и Kraken. Его приватный конфиг: `config-module/egress.json`, mode0640, group1000; шаблон без клиентского ID — в репозитории. + +Прокси `socks5://lampac-egress:1080` включён в: + +- `tmdb.proxyapi` и `tmdb.proxyimg` — встроенные TMDB/CUB; +- `posterApi` — постеры карточек Catalog; +- `serverproxy.image` — обработчик изображений. + +**Глобальный прокси для HTTP/видео не включён.** Проверенный тестовый видеопоток шёл напрямую с LAN-адреса NAS. Общий `vless-proxy` не меняли; при проверке его исходящие TLS-соединения обрывались. Это наблюдение на дату настройки, а не установленная причина отказа общей инфраструктуры. + +Внутренний вход Caddy — `192.168.2.197:8443`, TLS-имя `vpn.mallexxx.duckdns.org`. На `192.168.2.197:443` находится интерфейс TrueNAS: использовать его вместо 8443 нельзя, сертификат другой. + +## Единая история без синхронизации SQLite + +Рабочая TimeCode находится на TrueNAS в постоянном `database/TimeCode.sql`. Kraken-клиент обращается к тому же серверу через HTTPS API. **Двусторонней репликации SQLite, rsync БД или общего сетевого файла БД нет.** + +История из Kraken перенесена один раз штатными `/timecode/dump` → `/timecode/set`; сохранены все 9 записей и их прогресс. Оба сервера используют одинаковый серверный `instance.uid`; профили остаются отдельными областями. Старая БД Kraken оставлена для отката. + +В существующем HTTPS-сайте Caddy выделен префикс `https://git.mallexxx.duckdns.org/lampac-history` с точным списком TimeCode-маршрутов. Без правильного `history_key` — 404; прочие маршруты Lampac наружу через него не открыты. Gitea продолжает работать. Выполнен reload Caddy, не перезапуск общего сервиса. + +Ключ транспорта называется **`history_key`, не `token`**: `token` в Lampac меняет владельца данных. В сгенерированном клиенте и чтение, и запись должны независимо передавать `uid`; это проверяется исполнением реальных URL-методов в тесте. + +Kraken: приватный результат `scripts/build_timecode.py` установлен в `config-module/timecode-plugin.js`, примонтирован в `/lampac/module/Sync/TimeCode/plugin.js:ro`. NAS использует штатный локальный TimeCode-клиент. Межсайтовые WebSocket-уведомления не добавлялись; прогресс читается при обновлении карточки/таймлайна. + +## Каталог и отметки Obsidian + +Единственный генератор и писатель Obsidian остаётся на Kraken. Ночной `/home/kraken/scripts/watchlist-nightly.sh` после сборки каталога публикует готовые JSON на NAS через `publish_feed.py`. + +На NAS ключ приёма ограничен `restrict` и forced command `receive_feed.py --root /mnt/RED_2TB/docker/lampac`. Принимаются только файлы каталога; SQL, ссылки, пути вне разрешённого списка и код отклоняются. Файлы заменяются атомарно по одному, карточки раньше основного манифеста. Проверена публикация 544 файлов. + +`watchlist-sync` читает общий HTTPS dump через `LAMPAC_TIMECODE_DB` в приватном `.env`. Проверен dry-run: 9 записей, изменений списка не внесено. Второй генератор/писатель на NAS не запущен. Порог отметки фильма — 90%; существующее поведение сериалов этим изменением не расширялось. + +## Данные и бэкапы + +Постоянные `wwwroot` и `data` при первой установке нужно заполнить из образа до запуска. Пустые bind mounts скрывают и frontend, и резервные Cloudflare IP-файлы; при недоступной сети это приводило к падению старта. Конфиги должны читаться uid1000: режим0600 после SCP для `init.conf` не подходит. + +Контейнер пишет от uid1000/gid1000, администратор NAS — uid950 в группе1000. **`TimeCode.sql`, `-wal`, `-shm` должны иметь mode0664 и group1000.** Read-only SQLite-подключение тоже может создавать WAL/SHM. Первый бэкап от uid950 создал их с0644, после чего сервер не мог записывать прогресс. Владельцы/права исправлены, старые подключения закрыты перезапуском только Lampac. + +`scripts/backup_history.py` перед открытием проверяет group write, закрывает подключения, использует SQLite online backup и проверку целостности. NAS crontab: ежедневно04:27 по времени хоста, хранение30 дней в `backups/timecode`. Часовой пояс приложения — Asia/Novosibirsk; расписание cron не следует автоматически считать этим часовым поясом. Это локальный бэкап, не синхронизация БД. + +После исправления проверена API-запись **до и после повторного бэкапа**; все 9 записей и значения прогресса сохранены. Для отката сохранены прежние Compose/Caddy/настройки и снимки истории. Живую БД обычным копированием не подменять. + +## Что проверено + +- HTTP200 и окончание запуска `Configure complete`; одного Docker healthcheck недостаточно. +- Реальный поиск «дюна» на Konka через экранную клавиатуру: результаты получены, JavaScript-ошибок нет, вкладка watchlist одна. +- На видимом экране: 7 встроенных и28 каталожных постеров загружены, сломанных0; настройки прокси подтверждены после перезагрузки приложения. +- Плеер Lampac декодировал тестовый H.264-поток640×360 с NAS: время увеличивалось, `readyState=4`, ошибки отсутствовали. Непрерывный пяти-/десятиминутный тест, реальная онлайн-раздача и звук на слух отдельно не подтверждены. +- 10 автоматических тестов: 5 поиска, 3 развёртывания/истории/бэкапа, 2 чтения TimeCode API. +- Изменения запушены в обе репозитории; локальные копии в Developer обновлены. Временный установщик на роутере18085, ролик и диагностические SSH-перенаправления удалены. + +Связано: [[personal/tech/lampac-deployment]], [[personal/tech/konka-q85-novosibirsk]], [[family/how-to/truenas-infrastructure]], [[personal/plans/lampac-watched-to-watchlist]].