Автозапуск Node.js проекта на Debian 12 с NVM и PM2

Добавить в автозапуск Node.js проект очень просто

Настроить автоматический запуск вашего Node.js приложения при старте сервера Debian 12 не сложно. Мы будем использовать NVM (Node Version Manager) для удобного управления версиями Node.js и PM2 для управления процессом вашего приложения и обеспечения его автозапуска.

Предварительные условия:

  1. Права sudo: Вы можете выполнять команды с sudo.
  2. NVM установлен: Node.js установлен через NVM для вашего пользователя.
  3. PM2 установлен глобально: npm install -g pm2 для вашего пользователя.
  4. Рабочий Node.js проект: У вас есть готовый Node.js проект, который можно запустить (например, файл app.js или server.js).
  5. Путь к проекту: Вы знаете полный путь к каталогу вашего Node.js проекта.

 

Шаг 1: Подготовьте ваше приложение к запуску с PM2

  1. Войдите в систему под вашим обычным пользователем
  2. Перейдите в каталог вашего Node.js проекта:
    cd /web/ваш_домен/каталог_вашего_проекта
  3. Запустите ваше приложение с помощью PM2:
    pm2 start app.js --name "my_app"
    • Замените app.js на имя вашего главного файла приложения если нужно (например, server.js, index.js).
    • — name «имя_вашего_проекта» — это псевдоним для вашего приложения в PM2, который облегчает управление им. Выберите осмысленное имя.
    • Пример:
      pm2 start app.js --name "my_app" -i max

      (Если app.js — это ваш основной файл)

  1. Проверьте, что приложение запущено:
    pm2 list

    Вы должны увидеть ваше приложение в списке со статусом online.

Шаг 2: Настройка автозапуска с помощью PM2

Теперь, когда ваше приложение работает под PM2, нужно настроить PM2 так, чтобы он запускал его при каждом старте системы.

  1. Сгенерируйте скрипт автозапуска systemd: Выполните эту команду из любого каталога. PM2 автоматически определит, что ваша система использует systemd.
    pm2 startup systemd
  2. Скопируйте и выполните предложенную команду: pm2 startup systemd выдаст вам команду, которую необходимо выполнить с правами суперпользователя (sudo). Эта команда настроит PM2 для запуска от имени вашего пользователя и с правильной версией Node.js, установленной через NVM.
    • Пример команды, которую вы увидите:
      sudo env PATH=$PATH:/home/ваш_домен/.nvm/versions/node/v_версия_nodejs/bin /home/ваш_домен/.nvm/versions/node/v_версия_nodejs/lib/node_modules/pm2/bin/pm2 startup systemd -u ваш_пользователь --hp /home/ваш_домен

      Очень важно: Убедитесь, что вы копируете и выполняете именно ту команду, которую выдал ваш pm2 startup systemd, поскольку пути и версии могут отличаться.

    • Выполнение команды: Вставьте скопированную команду в терминал и нажмите Enter. Возможно, вас попросят ввести пароль вашего пользователя.
    • Сохраните текущий список процессов PM2: Эта команда гарантирует, что при следующем запуске PM2 (после перезагрузки) он снова запустит все ваши приложения, которые сейчас в состоянии online.
      pm2 save

      Вы должны увидеть подтверждение сохранения, например:

      [PM2] Saved process list for current use

       

Чтобы проверить, что автозапуск Node.js проекта работает — перезагрузите сервер

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *