Установка

Docker, нативный Linux, Windows и ручная сборка. Обновление, управление и удаление.


Docker

Рекомендуемый способ. Образ для linux/amd64 и linux/arm64. Порт по умолчанию — 9118.

bash
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.

docker-compose.yaml
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 — одновременный запуск без правки невозможен.

bash
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

Linux (Debian / Ubuntu)

Скрипт устанавливает .NET 10 Runtime, создаёт пользователя lampac и регистрирует systemd-сервис. Поддерживаются amd64 и arm64.

bash — установка / обновление / удаление
# Установка
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
bash — управление сервисом
systemctl status lampac     # статус
systemctl restart lampac    # перезапуск
systemctl stop lampac       # остановить
systemctl enable lampac     # автозапуск
journalctl -u lampac -f     # лог в реальном времени

Windows

1

Установите .NET 10 ASP.NET Core Runtime

Скачайте и установите ASP.NET Core Runtime 10.0 для Windows с официального сайта.

Скачать .NET 10 →
2

Скачайте и распакуйте релиз

Скачайте lampac-nextgen.zip со страницы релизов и распакуйте, например, в C:\lampacNG.

Страница релизов →
3

Настройте конфигурацию

Переименуйте example.init.conf в init.conf и отредактируйте под свои нужды.

4

Запустите сервер

cmd / PowerShell
cd C:\lampacNG
dotnet Core.dll
5

Фоновый сервис через NSSM (опционально)

Скачайте NSSM, распакуйте в C:\nssm.

cmd — от имени Администратора
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/.

bash — build.sh
./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-установке.

LAMPAC_INSTALL_ROOT
По умолчанию: /opt/lampac
Директория установки
LAMPAC_USER
По умолчанию: lampac
Системный пользователь
LAMPAC_UID
По умолчанию: 1000
UID (если занят — выбирается свободный)
LAMPAC_GID
По умолчанию: 1000
GID (если занят — выбирается свободный)
LAMPAC_PORT
По умолчанию: 9118
Порт (для подсказки после установки)
LAMPAC_GITHUB_REPO
По умолчанию: lampac-nextgen/lampac
GitHub-репозиторий релизов
LAMPAC_DOTNET_ROOT
По умолчанию: /usr/share/dotnet
Путь установки .NET
LAMPAC_DOTNET_CHANNEL
По умолчанию: 10.0
Версия .NET runtime

Что сохраняется при обновлении

--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-паттерны.


Kubernetes / Helm

Репозиторий содержит готовый Helm-чарт (charts/lampac/) для развёртывания на Kubernetes. Образ ghcr.io/lampac-nextgen/lampac, поддерживает linux/amd64 и linux/arm64.

Быстрая установка

bash
helm upgrade --install lampac ./charts/lampac \
  -n lampac --create-namespace

Конфиг через хост-директорию

Lampac читает /lampac/init.conf и /lampac/passwd. Чтобы монтировать их с узла кластера:

values.yaml
config:
  fromHost:
    enabled: true
    hostPath: /path/on/node/containing/init.conf
  mountPasswd: true   # монтировать passwd рядом с init.conf

Обзор параметров (values)

Ключ Описание
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.