ispmanager 6 lite, pro, host

/
/
/
Управление проектом на Node.js

Управление проектом на Node.js

Действия с сайтом на Node.js

Чтобы выбрать действие:

  1. Авторизуйтесь в ispmanager под нужной учетной записью.
  2. Перейдите в раздел Сайты.
  3. Выберите сайт или приложение → нажмите.
  4. В контекстном меню нажмите на нужное действие:
    • Параметры запуска (Node.js)
    • Перезапустить (Node.js)
    • Npm install
    • Просмотр пакетов Node.js
    • Shell-клиент

Параметры запуска (Node.js)

Параметры запуска — команды из конфигурационного файла, которые выполнит Node.js над проектом. Например, команда "node server.js" запустит server.js.

Чтобы настроить команды заполните данные:

  • Выбрать команду из списка доступных:
    • Выбор команды — команды выбираются из списка, указанного в параметре "scripts" файла package.json

      Пример команд
        "scripts": {
          "test": "echo \"Error: no test specified\" && exit 1",
          "start": "node server.js"
        }
  • Указать команду вручную:
    • Описание команды — одна самописная команда для запуска проекта. Команда может включать несколько команд с помощью операторов (&&,  ; и  |).  Пример команды: "npm run test && exit 1"
  • Выполнить дополнительную команду перед запуском — установите галочку, чтобы указать собственную команду и активировать её перед каждым запуском проекта. Пример команды: node server.js. После выполнения команды она сохранится в список команд опции Выбрать команду из списка доступных. Пример команды в списке: "ispmanager-custom-command":"node server.js"
  • Добавить переменную окружения — переменная, которая передает проекту параметры без изменения кода. Переменные окружения хранятся в кодировке base64-XML. Они указываются в формате ИМЯ/ЗНАЧЕНИЕ в поле AppEnv внутренней таблицы nodejs. Доступно добавление до 10 переменных окружения
    • Имя — название переменной. Пример: EXAMPLE_ENV
    • Значение — значение переменной. Пример: example_value

После настройки сохраните изменения. 

Если вы добавили новые команды, установите их через npm и перезапустите проект.

Перезапустить (Node.js)

После создания и первого развертывания проекта на Node.js он автоматически перезапускается. 

Для применения всех последующих изменений перезапускайте проект вручную.

Перезапуск сопровождается статусом в столбце Параметры. В случае успеха статус меняется на , при ошибке — на . Нажмите на статус для просмотра журнала ошибок.

Npm install

Npm — менеджер пакетов Node.js. Вместе с командой install устанавливает зависимости из файла package.json и управляет проектом. Заменяет ввод команды в терминале.

Всегда используйте Npm install:

  • после изменения параметров запуска
  • ручного добавления зависимостей в файл package.json

Не требуется при установке пакетов через Просмотр пакетов Node.js.

Просмотр пакетов Node.js

Здесь доступны: 

  • просмотр автоматически загруженных пакетов из package.json
  • установка недостающих пакетов без редактирования package.json
  • удаление пакетов из package.json и проекта

Для ручной установки пакетов:

  1. На панели инструментов нажмите Установить
  2. Введите: ПАКЕТ@ВЕРСИЯ_ПАКЕТА. Для списка пакетов указывайте каждый с новой строки.

    Пример

    Для установки пакета Express версии 4.18.3 введите: express@4.18.3

  3. Нажмите Установить.
  4. Дождитесь окончания установки пакетов. 

Пакеты устанавливаются из реестра npm. После установки они отображаются в списке и добавляются в package.json в "dependencies".

Пример записи в файле package.json
{
  "name": "node.com",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "type": "commonjs",
  "dependencies": {
    "express": "^4.18.3"
  }
}

Shell-клиент

Для выполнения команд Node.js и npm используйте shell-клиент. Эта возможность доступна, если в настройках пользователя включена опция Может использовать shell.

При запуске shell-клиента панель управления автоматически:

  • откроет домашнюю директорию сайта
  • добавит пути к Node.js для выбранного сайта в переменную PATH

Файлы проекта на Node.js

Проект Node.js по умолчанию создает конфигурационный файл package.json и файл с сервером server.js. Конфигурационный файл устанавливает зависимости через npm и управляет запуском сервера. 

Чтобы изменить файлы:

Не редактируйте файлы без полной уверенности в своих действиях. Перед сохранением ispmanager проверяет синтаксис, но не корректность настроек.

  1. Авторизуйтесь в ispmanager под нужной учетной записью.
  2. Перейдите в раздел Сайты.
  3. Выберите сайт.
  4. На панели инструментов нажмите Конфиг. файлы.
  5. В конфигурационном файле Node.js измените путь к приложению сайта в параметрах "main" и "start".

    Содержимое package.json по умолчанию
    {
      "name": "doc.test",
      "version": "1.0.0",
      "description": "",
      "main": "server.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js"
      },
      "keywords": [],
      "author": "",
      "license": "ISC"
    }

    Подробнее о формате конфигурационного файла — в официальной документации Node.js.

  6. При необходимости отредактируйте файл с сервером.

    Содержимое server.js по умолчанию
    const http = require('http');
    const fs = require('fs');
    
    const server = http.createServer((req, res) => {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/html;charset=utf-8');
        const data = fs.readFileSync(process.env.INDEX_PATH, 'utf8');
        res.end(data);
    });
    
    if ("SOCKET" in process.env) {
        const socket = process.env.SOCKET;
        // Socket must be removed before starting server. 
        // This action is required. Otherwise server will not start if socket exists.
        if (fs.existsSync(socket)) {
            fs.unlinkSync(socket);
        }
        server.listen(socket, () => {
            fs.chmodSync(socket,0660);
            console.log(`Listening ${socket}`);
        });
    } else if ("PORT" in process.env) {
        const hostname = process.env.INSTANCE_HOST;
        const port = process.env.PORT;
        server.listen(port, hostname, () => {
            console.log(`Listening http://${hostname}:${port}/`);
        });
    }
  7. Нажмите Сохранить и закрыть.

Далее установите пакеты через npm.

Диагностика приложения через pm2

Проверьте работу приложения сайта через менеджер процессов pm2. Эта возможность доступна, если в настройках пользователя включена опция Может использовать shell.

  1. Подключитесь к серверу с панелью ispmanager по SSH.
  2. В терминале авторизуйтесь под учетной записью владельца сайта.

    Как авторизоваться в терминале

    Введите команду в терминал:

    su USERNAME

    Где USERNAME — имя пользователя в панели. Например, www-root.

  3. Выведите список приложений:

    /usr/lib/ispnodejs/bin/pm2 list
    Пример ответа
    |id│name        │namespace│version│mode│pid   │uptime│↺ │status│cpu│mem   │user	             │watching│
    ├──┼────────────┼─────────┼───────┼────┼──────┼──────┼──┼──────┼───┼──────┼──────────────────┼────────┤ 
    │ 0│example.com │default  │N/A    │fork│317423│ 13m  │2 │online│0% │60.6mb│ ИМЯ_ПОЛЬЗОВАТЕЛЯ │disabled│
    │ 1│example2.com│default  │N/A    │fork│316830│ 19m  │0 │online│0% │61.7mb│ ИМЯ_ПОЛЬЗОВАТЕЛЯ │disabled|
  4. Запросите информацию о нужном приложении:

    /usr/lib/ispnodejs/bin/pm2 info NAME или ID
    Подробнее

    Где:

    • NAME — имя сайта. Например, example.com
    • ID — идентификатор процесса приложения

    Пример ответа:

    Describing process with id 0 - name example.com
    | status            │ online                                                              │
    │ name              │ example.com                                                         │
    │ namespace         │ default                                                             │
    │ version           │ N/A                                                                 │
    │ restarts          │ 2                                                                   │
    │ uptime            │ 15m                                                                 │
    │ script path       │ /var/www/ ИМЯ_ПОЛЬЗОВАТЕЛЯ /data/.nvm/versions/node/v18.1.0/bin/npm │
    │ script args       │ start                                                               │
    │ error log path    │ /var/www/ ИМЯ_ПОЛЬЗОВАТЕЛЯ /data/.pm2/logs/example.com-error.log    │
    │ out log path      │ /var/www/ ИМЯ_ПОЛЬЗОВАТЕЛЯ /data/.pm2/logs/example.com-out.log      │
    │ pid path          │ /var/www/ ИМЯ_ПОЛЬЗОВАТЕЛЯ /data/.pm2/pids/example.com-0.pid        │
    │ interpreter       │ node                                                                │
    │ interpreter args  │ N/A                                                                 │
    │ script id         │ 0                                                                   │
    │ exec cwd          │ /var/www/ ИМЯ_ПОЛЬЗОВАТЕЛЯ /data/www/example.com                    │
    │ exec mode         │ fork_mode                                                           │
    │ node.js version   │ 26.2.0                                                              │
    │ node env          │ N/A                                                                 │
    │ watch & reload    │ ✘  	                                                              │
    │ unstable restarts │ 0                                                                   │
    │ created at        │ 2026-06-01T04:25:03.051Z                                            |