Docker, нативный Linux, Windows и ручная сборка. Обновление, управление и удаление.
Рекомендуемый способ. Образ для linux/amd64 и linux/arm64. Порт
по умолчанию — 9118.
git clone https://github.com/lampac-nextgen/lampac.git cd lampac mkdir -p lampac-docker/config lampac-docker/plugins cp config/example.init.conf lampac-docker/config/init.conf printf '%s' 'ваш_пароль_root' > lampac-docker/config/passwd # Раскомментируйте блок volumes в docker-compose.yaml docker compose up -d
По умолчанию тома закомментированы — контейнер стартует с init.conf и passwd из
образа. Рабочая директория в контейнере — /lampac.
services: lampac: image: ghcr.io/lampac-nextgen/lampac ports: - "9118:9118" shm_size: 1024mb restart: unless-stopped volumes: - ./lampac-docker/config/passwd:/lampac/passwd - ./lampac-docker/config/init.conf:/lampac/init.conf - ./lampac-docker/plugins/lampainit.js:/lampac/plugins/override/lampainit.js - ./lampac-docker/cache:/lampac/cache - ./lampac-docker/database:/lampac/database
| Хост | Контейнер | Назначение |
|---|---|---|
./lampac-docker/config/passwd |
/lampac/passwd |
Пароль root |
./lampac-docker/config/init.conf |
/lampac/init.conf |
Конфигурация |
./lampac-docker/plugins/lampainit.js |
/lampac/plugins/override/lampainit.js |
Переопределение плагина |
./lampac-docker/cache |
/lampac/cache |
Кеш |
./lampac-docker/database |
/lampac/database |
БД (Sync, TimeCode, SISI) |
./lampac-docker/mods/<Name> |
/lampac/mods/<Name> |
Пользовательские модули |
docker-compose.dev.yaml — отдельная инстанция на порту 29118. Тома включены
по умолчанию. Оба файла используют container_name: lampac — одновременный запуск без правки
невозможен.
mkdir -p lampac-docker/config lampac-docker/plugins cp config/example.init.conf lampac-docker/config/development.init.conf # В development.init.conf: "listen".port = 29118 printf '%s' 'ваш_пароль' > lampac-docker/config/passwd cp Modules/LampaWeb/plugins/lampainit.js lampac-docker/plugins/lampainit.js docker compose -f docker-compose.dev.yaml up -d
Скрипт устанавливает .NET 10 Runtime, создаёт пользователя lampac и
регистрирует systemd-сервис. Поддерживаются amd64 и arm64.
# Установка curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash # Обновление curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash -s -- --update # Проверка обновления без изменений curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash -s -- --update --dry-run # Пред-релиз (pre-release) curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash -s -- --pre-release # Подробный лог для диагностики curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash -s -- --verbose curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash -s -- --update --verbose # Удаление curl -fsSL https://raw.githubusercontent.com/lampac-nextgen/lampac/main/install.sh | sudo bash -s -- --remove
systemctl status lampac # статус systemctl restart lampac # перезапуск systemctl stop lampac # остановить systemctl enable lampac # автозапуск journalctl -u lampac -f # лог в реальном времени
Скачайте и установите ASP.NET Core Runtime 10.0 для Windows с официального сайта.
Скачать .NET 10 →Скачайте lampac-nextgen.zip со страницы релизов и распакуйте, например, в
C:\lampacNG.
Переименуйте example.init.conf в init.conf и отредактируйте под свои нужды.
cd C:\lampacNG dotnet Core.dll
Скачайте NSSM, распакуйте в C:\nssm.
rem Создание сервиса C:\nssm\win64\nssm.exe install Lampac "C:\Program Files\dotnet\dotnet.exe" "C:\lampacNG\Core.dll" C:\nssm\win64\nssm.exe set Lampac AppDirectory "C:\lampacNG" C:\nssm\win64\nssm.exe set Lampac Start SERVICE_AUTO_START C:\nssm\win64\nssm.exe start Lampac rem Удаление сервиса C:\nssm\win64\nssm.exe stop Lampac C:\nssm\win64\nssm.exe remove Lampac
Требуется .NET SDK 10.0+. Собирает все проекты solution и помещает результат в
publish/.
./build.sh # сборка → publish/ RUNTIME_ID=linux-arm64 ./build.sh # кросс-компиляция arm64 # Напрямую через dotnet dotnet publish Core/Core.csproj -c Release -o publish dotnet build NextGen.slnx # компиляция всего solution # Запуск cd publish && dotnet Core.dll
| Флаг build.sh | Описание |
|---|---|
--clean |
Удалить bin/ и obj/ из всех проектов перед сборкой |
--format |
Форматирование кода (dotnet format) |
-o /path |
Кастомная директория вывода вместо publish/ |
-c Debug |
Debug-конфигурация (по умолчанию Release) |
Применяются к install.sh при нативной Linux-установке.
--update использует rsync --delete, но следующие пути защищены:
| Путь | Описание |
|---|---|
init.conf, init.yaml |
Конфигурация |
mods/ |
Пользовательские модули |
data/kinoukr.json, data/PizdatoeDb.json |
Локальные БД |
*.db, *.db-shm, *.db-wal |
SQLite (Sync, SISI, TimeCode) |
logs/, cache/ |
Логи и кеш |
TorrServer, torrserver/, data/ts/ |
TorrServer и его данные |
users.json, passwd, current.conf, database/ |
Пользовательские данные |
wwwroot/*.js |
Пользовательские JS (темы, кнопки) |
plugins/override/ |
Переопределения плагинов |
excludes.conf |
Дополнительные исключения rsync |
Создайте excludes.conf рядом с Core.dll для защиты своих файлов. Одно исключение
на строку, # — комментарий, поддерживаются glob-паттерны.
Репозиторий содержит готовый Helm-чарт (charts/lampac/) для развёртывания на
Kubernetes.
Образ ghcr.io/lampac-nextgen/lampac, поддерживает linux/amd64 и
linux/arm64.
helm upgrade --install lampac ./charts/lampac \ -n lampac --create-namespace
Lampac читает
/lampac/init.conf и /lampac/passwd.
Чтобы монтировать их с узла кластера:
config:
fromHost:
enabled: true
hostPath: /path/on/node/containing/init.conf
mountPasswd: true # монтировать passwd рядом с init.conf
| Ключ | Описание |
|---|---|
service.port / service.targetPort |
Порт Service кластера и порт контейнера (должен совпадать с listen.port в
init.conf)
|
config.fromHost |
Монтировать init.conf (+ passwd) с узла через subPath |
persistence.cache / persistence.database |
PVC для /lampac/cache и /lampac/database |
readinessProbe / startupProbe |
По умолчанию TCP-проверка; можно заменить на httpGet: /version |
httpRoute |
Gateway API HTTPRoute (см. helm/lampac-values.yaml в репозитории) |
Полный чарт и примеры значений:
charts/lampac/ на GitHub.