Lampac NextGen — self-hosted backend для Lampa (Docker, Synology NAS)
Локальное развёртывание Lampac NextGen — активного форка оригинального Lampac, чей основной репозиторий больше не поддерживается.
Ветка
synology— вариант для Synology NAS: вdocker-compose.yamlиспользуются абсолютные пути томов (/volume1/docker/lampac/...), а не относительные, как в веткеmain.
Почему этот форк
Оригинальный Lampac (Mirrowol/Lampac) давно не обновляется. Из форков наибольшую популярность набрал lampac-nextgen/lampac:
| Показатель | Значение |
|---|---|
| Репозиторий | https://github.com/lampac-nextgen/lampac |
| Stars / Forks | ~347 / ~80 (самый популярный форк Lampac) |
| Активность | ежедневные коммиты, релизы (последний v1.61.2 — 30.09.2026) |
| Стек | ASP.NET Core, .NET 10, AGPL-3.0 |
| Docker-образ | ghcr.io/lampac-nextgen/lampac (amd64 + arm64) |
| Документация | https://docs.lampac.dev |
| Чат | https://t.me/LampacTalks/13998 |
Что умеет: агрегация ссылок с 70+ VOD/аниме/18+ источников, встроенный TorrServer, DLNA, JacRed, транскодинг (GStreamer/FFmpeg), синхронизация закладок, хостинг Lampa UI, Telegram-уведомления, WAF и многое другое.
Структура проекта
/volume1/docker/lampac/ # корень проекта на NAS
├── docker-compose.yaml # compose-файл (порт 9118, абсолютные пути томов)
├── 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)
├── cache/ # Кеш (→ /lampac/cache)
├── database/ # SQLite-БД: Sync, TimeCode, SISI (→ /lampac/database)
├── README.md # Эта документация
├── AGENT.md # Инструкции для AI-агента
└── .gitignore
Тома, заданные в docker-compose.yaml (вне репозитория):
| Путь хоста (NAS) | В контейнере | Доступ |
|---|---|---|
/volume1/docker/lampac/config/passwd |
/lampac/passwd |
rw |
/volume1/docker/lampac/config/init.conf |
/lampac/init.conf |
ro |
/volume1/docker/lampac/cache |
/lampac/cache |
rw |
/volume1/docker/lampac/database |
/lampac/database |
rw |
/volume1/docker/lampac/modules/*/... |
/lampac/module/... |
ro |
/volume4/Torrents |
/lampac/data/dlna |
rw — медиа DLNA |
/volume1/homes/prodik/NAS/Курсы |
/lampac/data/dlna/Cources |
ro — подпапка внутри DLNA |
Быстрый старт
Требования: Docker 24+ с Compose v2 (проверка: docker compose version).
# 1. Запуск
docker compose up -d
# 2. Проверка
curl -fsS "http://localhost:9118/version?type=hash" # должен вернуть hash
curl -fsS -o /dev/null -w '%{http_code}\n' http://localhost:9118/online.js # 200
# 3. Логи / статус
docker compose logs -f lampac
docker compose ps
Доступ
| Сервис | URL |
|---|---|
| Веб-интерфейс (Lampa UI) | http://localhost:9118/ |
| Плагин 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.
Для доступа с других устройств локальной сети используйте LAN-IP машины, например http://192.168.x.x:9118 (порт уже проброшен на 0.0.0.0).
Конфигурация
config/init.conf
Основной конфиг (JSON). Перечитывается автоматически без перезапуска контейнера (watcher каждую секунду, бэкапы — внутри контейнера в /lampac/database/backup/init/). После правки достаточно сохранить файл.
Ключевые разделы:
{
"listen": { "ip": "0.0.0.0", "port": 9118, "scheme": "http" },
"BaseModule": {
"SkipModules": [/* выключенные модули, см. ниже */]
},
"LampaWeb": { "initPlugins": { "dlna": true } }, // попадание плагина в список клиента Lampa
"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-защит
"online": { "name": "Lampac NextGen" },
"sisi": { "NextHUB": true }
}
Текущий набор модулей
Выключены (BaseModule.SkipModules): OnlineAnime, OnlineUKR, OnlinePaid, OnlineGEO, Transcoding, WebLog.
Включены дополнительно к стартовому набору:
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).
Чтобы выключить/включить любой другой модуль — добавьте или уберите его имя в SkipModules (имя = имя папки в /lampac/module/, включая группы вроде OnlineAnime). Изменение применяется после docker compose restart lampac (SkipModules не hot-reload). Убрать из списка группу Sync целиком отключит и TimeCode/Storage/SyncEvents.
Список всех модулей и маршрутов: https://docs.lampac.dev/modules/overview
TorrServer
Включён (TorrServer в init.conf, бинарник сам скачивается с GitHub в /lampac/data/ts/). Доступ только из локальной сети:
- внутренний порт TorrServer
9085не проброшен на хост — снаружи он недоступен; - внешний доступ идёт только через прокси
http://LAN_IP:9118/ts/(порт 9118 в compose); - из интернета сервер не доступен, пока порт 9118 закрыт файрволом/роутером (см. «Безопасность»).
Пароль (tspass) генерируется при старте; Web-UI — http://LAN_IP:9118/ts/.
Tg-notify (Telegram-бот)
Модуль Tg-notify.bot загружен, но long polling не стартует, пока не задан токен: впишите bot_token (от @BotFather) в секцию TelegramBot файла init.conf — конфиг подхватится автоматически. Опционально: tmdb_api_key, trakt_client_id, kp_api_key (описание полей — в README модуля).
DLNA в интерфейсе Lampa
Чтобы плагин DLNA появился в Lampa, нужно две вещи:
- Модуль загружен (уже включён:
loaded module: DLNA). - Флаг
LampaWeb.initPlugins.dlnaвinit.conf— именно он решает, попадёт ли DLNA в список плагинов, который Lampac отдаёт клиенту (/lampainit.js). Сейчас выставленtrue; без него Lampa плагин не увидит (модуль работает, а пункт в меню не появляется).
"LampaWeb": { "initPlugins": { "dlna": true } }
Аналогично включаются флаги tracks, catalog, dorama, sync, backup, watch_together и др. (список — LampaWeb/Models/InitPlugins.cs, дефолты — в current.conf).
После правки перезагрузите страницу 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) или перезапустить контейнер.
AdminPanel
Веб-админка Lampac: правка init.conf/current.conf, пользователи users.json.
- Вход:
http://IP_МАШИНЫ:9118/adminpanel/auth— пароль изconfig/passwd(cookieaccspasswd, живёт 180 дней). - Панель:
http://IP_МАШИНЫ:9118/adminpanel(без входа — 302 на страницу auth). - Доступ к админке не открывайте в интернет без защиты — см. README модуля AdminPanel.
config/passwd
Пароль учётной записи root в одну строку (используется для служебных функций и WebLog). Сгенерирован при установке; для смены отредактируйте файл и перезапустите контейнер: docker compose restart lampac.
Обновление
docker compose pull
docker compose up -d
Данные (init.conf, passwd, cache/, database/, modules/) переживают обновление, т.к. смонтированы томами с абсолютными путями NAS.
Перенос на другой сервер
Игнорируемые пути (.gitignore): config/passwd, cache/, database/, .DS_Store.
Копировать обязательно:
docker-compose.yaml
config/init.conf # вся конфигурация
config/passwd # СЕКРЕТ — переносить вне git (scp/rsync)
modules/ # override-файлы (manifest ×4, extensions.json)
README.md AGENT.md .gitignore
Копировать по желанию (данные пользователя, иначе создадутся заново):
database/ # закладки Sync, позиции TimeCode, SISI, библиотека Music
Не копировать — регенерируется автоматически: cache/, содержимое /lampac/data внутри контейнера (GeoLite2, ffmpeg/ffprobe, бинарник TorrServer, Lampa UI). Медиа DLNA лежат на томах NAS (/volume4/Torrents, Курсы) и копируются отдельно по необходимости.
Порядок переноса: скопировать файлы → в docker-compose.yaml заменить абсолютные пути томов на новые → docker compose up -d → health-check: curl "http://localhost:9118/version?type=hash". Порт 9118 менять не обязательно.
Полезные команды
docker compose restart lampac # перезапуск
docker compose stop lampac # остановить
docker compose down # остановить и удалить контейнер (тома сохраняются)
docker compose logs -f --tail 100 lampac # логи
docker compose exec lampac sh # шелл внутри контейнера
docker compose pull && docker compose up -d # обновление до свежего latest
Безопасность
- Порт 9118 проброшен на все интерфейсы — при выходе в интернет закройте его файрволом или поднимите reverse proxy с аутентификацией. Внутренний порт TorrServer (9085) не проброшен вовсе: он доступен только контейнеру, внешний доступ к TorrServer идёт исключительно через
/ts/на 9118. - Модули
DLNA,Tracks,Transcoding,GStreamer,Catalogне экранируют входящие запросы — не открывайте их публично без защиты. config/passwdсодержит секрет — файл добавлен в.gitignore.
Git-репозиторий
Код проекта хранится в Gitea: ssh://git@gitea.prodik.ru:222/prodik/lampac.git.
main— основная ветка: относительные пути томов (подходит для любого сервера).synology(эта ветка) — то же содержимое, ноdocker-compose.yamlадаптирован под Synology NAS: абсолютные пути/volume1/docker/lampac/..., тома/volume4/TorrentsиКурсы.
git remote -v # origin должен указывать на этот репозиторий
git add -A # секреты/данные не попадут (.gitignore)
git commit -m "описание"
git push origin synology
В git попадают только: docker-compose.yaml, config/init.conf, modules/**, README.md, AGENT.md, .gitignore. Секреты (passwd), cache/, database/ — в .gitignore.
Ссылки
- Репозиторий форка: https://github.com/lampac-nextgen/lampac
- Документация: https://docs.lampac.dev
- Быстрый старт: https://docs.lampac.dev/quickstart
- Docker: https://docs.lampac.dev/deployment/docker
- Конфигурация: https://docs.lampac.dev/configuration/overview
- Релизы: https://github.com/lampac-nextgen/lampac/releases