Исправление: том ./mods:/lampac/mods в compose и копии 10 модулей с enable:true; конфиг без SkipModules
This commit is contained in:
@@ -26,12 +26,8 @@ Lampac/
|
||||
├── config/
|
||||
│ ├── init.conf # Конфигурация сервера (JSON, hot-reload)
|
||||
│ └── passwd # Пароль root (СЕКРЕТ, не коммитить)
|
||||
├── modules/ # Overridе-файлы, монтируемые поверх файлов образа
|
||||
│ ├── Tracks/manifest.json
|
||||
│ ├── Music/manifest.json
|
||||
│ ├── Tg-notify.bot/manifest.json
|
||||
│ ├── AdminPanel/manifest.json
|
||||
│ └── LampaWeb/plugins/extensions.json # каталог магазина плагинов (+DLNA)
|
||||
├── modules/ # Резервные копии manifest-файлов (НЕ монтируются, см. ниже)
|
||||
├── mods/ # Копии модулей с enable: true (том ./mods:/lampac/mods)
|
||||
├── cache/ # Кеш (монтируется в /lampac/cache)
|
||||
├── database/ # SQLite-БД: Sync, TimeCode, SISI (→ /lampac/database)
|
||||
├── dlna/ # Данные DLNA (медиа/превью, → /lampac/data/dlna)
|
||||
@@ -40,6 +36,8 @@ Lampac/
|
||||
└── .gitignore
|
||||
```
|
||||
|
||||
**Важно:** том `./mods:/lampac/mods` в `docker-compose.yaml` **обязателен** — без него копии модулей не попадают в контейнер, и 10 модулей (Tracks, Music, Tg-notify.bot, WatchTogether, AdminPanel, ExternalBind, LogUserRequest-Lite, Telemetry, Transcoding, DatabaseEditor) не загружаются (в логах нет `loaded module: <Name>`, роуты вроде `/tracks.js` отдают 404, в Lampa при установке из магазина/по URL — ошибка «модуль нет»).
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
Требования: Docker 24+ с Compose v2 (проверка: `docker compose version`).
|
||||
@@ -65,7 +63,6 @@ docker compose ps
|
||||
| Плагин Online для Lampa | http://localhost:9118/online.js |
|
||||
| Плагин SISI (18+) | http://localhost:9118/sisi.js |
|
||||
| Плагин DLNA для Lampa | http://localhost:9118/dlna.js |
|
||||
| AdminPanel (вход) | http://localhost:9118/adminpanel/auth |
|
||||
| Проверка версии | http://localhost:9118/version?type=hash |
|
||||
|
||||
Чтобы подключить сервер к Lampa: откройте Lampa → Настройки → «Другие сервисы» (или вставьте адрес вручную) → `http://IP_МАШИНЫ:9118`.
|
||||
@@ -86,7 +83,7 @@ docker compose ps
|
||||
"BaseModule": {
|
||||
"SkipModules": [/* выключенные модули, см. ниже */]
|
||||
},
|
||||
"LampaWeb": { "initPlugins": { "dlna": true } }, // попадание плагина в список клиента Lampa
|
||||
"LampaWeb": { "initPlugins": { "dlna": true } }, // флаги клиентских плагинов в /lampainit.js (online, sisi, torrserver, jacred, cubProxy и др. уже true в base.conf)
|
||||
"TorrServer": { "enable": true, "tsport": 9085, "releases": "latest" },
|
||||
"TelegramBot": { "enable": true, "bot_token": "", "lampac_host": "http://127.0.0.1:9118" },
|
||||
"chromium": { "enable": true }, // Playwright для обхода JS-защит
|
||||
@@ -97,14 +94,18 @@ docker compose ps
|
||||
|
||||
### Текущий набор модулей
|
||||
|
||||
**Выключены** (`BaseModule.SkipModules`): `OnlineAnime`, `OnlineUKR`, `OnlinePaid`, `OnlineGEO`, `Transcoding`, `WebLog`.
|
||||
**Включены все модули** (проверка: `docker logs lampac | grep -c "loaded module"` → 117):
|
||||
|
||||
**Включены дополнительно к стартовому набору:**
|
||||
- `BaseModule.SkipModules` в `init.conf` — **пуст** (`[]`): ни один модуль и ни одна группа (`OnlineAnime`, `OnlinePaid`, `OnlineGEO`...) не исключён.
|
||||
- 10 модулей, которые в образе идут с `"enable": false` (`AdminPanel`, `DatabaseEditor`, `ExternalBind`, `LogUserRequest-Lite`, `Music`, `Telemetry`, `Tg-notify.bot`, `Tracks`, `Transcoding`, `WatchTogether`), подняты штатным способом по docs: копии их каталогов с `"enable": true` лежат в `mods/` на хосте и смонтированы **одним томом** `./mods:/lampac/mods`.
|
||||
|
||||
- `Catalog`, `JacRed`, `Sync` (вместе с `Storage`, `SyncEvents`, `TimeCode`), `TorrServer`, `DLNA`, `SISI` — убраны из `SkipModules`.
|
||||
- `Tracks`, `Music`, `Tg-notify.bot`, `AdminPanel` — включены через manifest-оверрайды в `modules/*/manifest.json` (в образе у них `enable: false`; файлы монтируются поверх `/lampac/module/<Name>/manifest.json`).
|
||||
Клиентские плагины (что подключается в Lampa автоматически через `/lampainit.js`) управляются флагами `LampaWeb.initPlugins` в `init.conf`. Сейчас подключены: `dlna` (флаг в `init.conf`), а из `base.conf`: `online`, `sisi`, `torrserver` (`/ts.js`), `jacred` (записывает `jackett_url` — отдельного `/jacred.js` у модуля нет), `cubProxy`, `tmdbProxy`, `timecode`, `pirate_store`.
|
||||
|
||||
Чтобы выключить/включить любой другой модуль — добавьте или уберите его имя в `SkipModules` (имя = имя папки в `/lampac/module/`, включая группы вроде `OnlineAnime`). Изменение применяется после `docker compose restart lampac` (SkipModules не hot-reload). Убрать из списка группу `Sync` целиком отключит и `TimeCode`/`Storage`/`SyncEvents`.
|
||||
### Установка плагинов через веб (Настройки → Плагины)
|
||||
|
||||
- **По URL (работает всегда):** «Добавить вручную» → `http://IP:9118/tracks.js`, `http://IP:9118/music.js`, `http://IP:9118/tg-notify.js`, `http://IP:9118/watchtogether.js` и т.д. Полный список плагинов модулей: https://docs.lampac.dev/modules/overview
|
||||
- **Внешние URL** из каталога магазина — работают.
|
||||
- **Дефект образа:** 15 записей каталога магазина ссылаются на `127.0.0.1:9118/plugins/*.js` (pubtorr, checker, hotkeys, torrents...) — таких файлов не существует (HTTP-роута `/plugins/` нет в коде). Такие записи из магазина не устанавливайте — используйте прямой внешний URL (для PubTorr это `https://lampame.github.io/main/pubtorr.js`, подключён через `LampaWeb.customPlugins`).
|
||||
|
||||
Список всех модулей и маршрутов: https://docs.lampac.dev/modules/overview
|
||||
|
||||
@@ -120,7 +121,7 @@ docker compose ps
|
||||
|
||||
### Tg-notify (Telegram-бот)
|
||||
|
||||
Модуль `Tg-notify.bot` загружен, но long polling не стартует, пока не задан токен: впишите `bot_token` (от [@BotFather](https://t.me/BotFather)) в секцию `TelegramBot` файла `init.conf` — конфиг подхватится автоматически. Опционально: `tmdb_api_key`, `trakt_client_id`, `kp_api_key` (описание полей — в README модуля).
|
||||
Модуль `Tg-notify.bot` загружен (включён через `mods/Tg-notify.bot`), но long polling не стартует, пока не задан токен: впишите `bot_token` (от [@BotFather](https://t.me/BotFather)) в секцию `TelegramBot` файла `init.conf` — конфиг подхватится автоматически. Опционально: `tmdb_api_key`, `trakt_client_id`, `kp_api_key` (описание полей — в README модуля). Клиентский плагин — `http://IP:9118/tg-notify.js`.
|
||||
|
||||
### DLNA в интерфейсе Lampa
|
||||
|
||||
@@ -137,11 +138,11 @@ docker compose ps
|
||||
|
||||
После правки перезагрузите страницу Lampa — `lampainit.js` сам добавит плагин (`Lampa.Plugins.add`) и он появится в Настройки → Плагины (со статусом включён). Ручное добавление по ссылке тоже работает: `http://IP_МАШИНЫ:9118/dlna.js`. Прямой UI модуля — `http://IP_МАШИНЫ:9118/dlna`.
|
||||
|
||||
**В магазине плагинов** (Настройки → Плагины/«Магазин») каталог отдаётся из `/extensions` — файла `LampaWeb/plugins/extensions.json` внутри образа, где DLNA по умолчанию нет. Добавлена запись через override: `modules/LampaWeb/plugins/extensions.json` (секция «Lampac» в начале каталога) монтируется поверх образного файла. Магазин кешируется (`Staticache`) — после правки этого файла кеш надо сбросить: удалить `cache/static/63/*` (каталог по хешу URL) или перезапустить контейнер.
|
||||
**В магазине плагинов** (Настройки → Плагины/«Магазин») каталог отдаётся из `/extensions` — образного файла `LampaWeb/plugins/extensions.json` (DLNA по умолчанию нет, но плагин и так подключается автодобавлением из `initPlugins`). Магазин кешируется (`Staticache`) — после любых правок образного файла кеш надо сбросить: удалить `cache/static/63/*` (каталог по хешу URL) или весь `cache/static/`.
|
||||
|
||||
### AdminPanel
|
||||
|
||||
Веб-админка Lampac: правка `init.conf`/`current.conf`, пользователи `users.json`.
|
||||
Веб-админка Lampac: правка `init.conf`/`current.conf`, пользователи `users.json`. Модуль включён (через `mods/AdminPanel`).
|
||||
|
||||
- Вход: `http://IP_МАШИНЫ:9118/adminpanel/auth` — пароль из `config/passwd` (cookie `accspasswd`, живёт 180 дней).
|
||||
- Панель: `http://IP_МАШИНЫ:9118/adminpanel` (без входа — 302 на страницу auth).
|
||||
@@ -158,7 +159,7 @@ docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Данные (`init.conf`, `passwd`, `cache/`, `database/`, `modules/`, `dlna/`) переживают обновление, т.к. смонтированы томами.
|
||||
Данные (`init.conf`, `passwd`, `mods/`, `cache/`, `database/`, `dlna/`) переживают обновление, т.к. смонтированы томами. Внимание: содержимое `mods/` — копии из образа, при обновлении образа его вручную не переносят (при расхождении версий модуль может не скомпилироваться — тогда пересоздать копию из свежего контейнера, см. AGENT.md).
|
||||
|
||||
## Перенос на другой сервер
|
||||
|
||||
@@ -170,7 +171,7 @@ docker compose up -d
|
||||
docker-compose.yaml
|
||||
config/init.conf # вся конфигурация
|
||||
config/passwd # СЕКРЕТ — переносить вне git (scp/rsync)
|
||||
modules/ # override-файлы (manifest ×4, extensions.json)
|
||||
mods/ # копии модулей с enable: true (иначе 10 модулей не загрузятся)
|
||||
README.md AGENT.md .gitignore
|
||||
```
|
||||
|
||||
@@ -247,7 +248,7 @@ git commit -m "описание"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
В git попадают только: `docker-compose.yaml`, `config/init.conf`, `modules/**`, `README.md`, `AGENT.md`, `.gitignore`. Секреты (`passwd`), `cache/`, `database/`, `dlna/` — в `.gitignore`.
|
||||
В git попадают только: `docker-compose.yaml`, `config/init.conf`, `mods/**` (включённые модули), `modules/**` (резервные копии манифестов, не монтируются), `README.md`, `AGENT.md`, `.gitignore`. Секреты (`passwd`), `cache/`, `database/`, `dlna/` — в `.gitignore`.
|
||||
|
||||
## Ссылки
|
||||
|
||||
|
||||
Reference in New Issue
Block a user