Инструкция по установке

Развертывание NNOP Panel на своем сервере

Ниже показан практический single-server сценарий: установка панели, настройка окружения, запуск сервиса и создание первого управляемого access profile ключа.

Linux-сервер с root или sudo доступом.

Node.js 22+ и npm.

Установленный server core на том же сервере.

Публичный домен или IP, направленный на ваш сервер.

1. Подготовьте сервер

Подойдет Ubuntu 22.04/24.04 или другой Linux-сервер с root/sudo доступом. Домен должен смотреть на IP сервера.

sudo apt update
sudo apt install -y curl git nginx
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
sudo mkdir -p /opt/nnop-panel
sudo chown "$USER":"$USER" /opt/nnop-panel
cd /opt/nnop-panel
wget https://nn-cloud.top/panel/releases/nnop-panel-1.0.0-source.tar.gz
tar -xzf nnop-panel-1.0.0-source.tar.gz --strip-components=1
npm install
cp .env.example .env.local

2. Настройте окружение

Откройте .env.local, задайте логин администратора, сильный пароль, случайный session secret и публичный HTTPS-адрес панели.

NNOP_PANEL_ADMIN_USERNAME=admin
NNOP_PANEL_ADMIN_PASSWORD=change-this-password-now
NNOP_PANEL_SESSION_SECRET=replace-with-a-long-random-secret
NNOP_PANEL_PUBLIC_BASE_URL=https://panel.example.com
NNOP_PANEL_CORE_BINARY_PATH=/usr/local/bin/secure-core
NNOP_PANEL_CORE_CONFIG_PATH=/usr/local/etc/secure-core/config.json
NNOP_PANEL_CORE_SERVICE_NAME=secure-core
# For UI-only testing without applying server changes:
# NNOP_PANEL_DISABLE_CORE_APPLY=1

3. Проверьте локальный запуск

Перед systemd удобно один раз собрать проект и открыть его на локальном порту.

npm run build
PORT=3010 npm run start

4. Создайте systemd-сервис

Сохраните блок ниже в /etc/systemd/system/nnop-panel.service, затем включите сервис.

[Unit]
Description=NNOP Panel
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/nnop-panel
Environment=NODE_ENV=production
Environment=PORT=3010
ExecStart=/usr/bin/npm run start
Restart=always
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target

5. Подключите домен через Nginx

Пример ниже проксирует домен на локальный порт панели. После этого можно добавить HTTPS через certbot.

server {
    listen 80;
    server_name panel.example.com;

    location / {
        proxy_pass http://127.0.0.1:3010;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

6. Обновление и резервная копия

Перед обновлением сохраните data/db.json. В этом файле находятся локальные настройки и созданные ключи.

cd /opt/nnop-panel
cp data/db.json /root/nnop-panel-db-backup.json
npm install
npm run build
sudo systemctl restart nnop-panel

Как создать первый ключ

  1. 01Откройте панель, войдите под администратором из .env.local.
  2. 02В настройках панели укажите публичный адрес сервера и параметры локального server core.
  3. 03Создайте ключ, скопируйте import token или ссылку импорта.
  4. 04В приложении NNOP откройте настройки и страницу исходников, если нужно повторить установку на своем сервере.