Настройка PM2

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

Шаг 1: Подготовка сервера

Сначала обновите все необходимые пакеты на сервере. Выполните команды одну за другой:

sudo apt update
sudo apt upgrade -y
sudo apt install curl gnupg git -y

ШАГ 2: Установка NodeJS 22 и npm 11

Node.js – это среда выполнения JavaScript, которая необходима для работы веб-приложений на стороне сервера.

1. Выполните следующие команды в терминале:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install nodejs -y

2. Обновите npm до последней доступной версии (рекомендуется):

sudo npm install -g npm@latest

Проверьте, что Node.js установлен правильно:

node -v
npm -v

ШАГ 3: Установка pm2

pm2 – это программа, которая следит, чтобы ваш сайт всегда работал.

Выполните команду:

sudo npm install pm2@latest -g

Проверьте установку:

pm2 -v

ШАГ 4: Подготовка проекта на основном домене (через FastPanel)

Эти шаги помогут вам загрузить и правильно расположить файлы вашего проекта на основном домене через панель управления FastPanel.

Как разместить проект:

  1. Откройте панель управления FastPanel.

  2. Перейдите в раздел «Сайты» → «Файлы» вашего основного сайта.

  3. Если вы ещё не распаковали проект на сервере:

    • Загрузите архив с проектом с вашего компьютера в корневой каталог вашего сайта через встроенный файловый менеджер FastPanel.

    • Распакуйте архив непосредственно в этом же каталоге.

  4. Проверьте, что структура файлов проекта после распаковки выглядит именно так:

ваш_проект/
├── dist/
│   └── exchanger/
│       └── server/
│           └── server.mjs
├── logs/ (если папки нет, создайте её через панель)
└── (другие файлы)

Важно

Убедитесь, что папка logs присутствует в корневом каталоге проекта. Если её нет, создайте её прямо здесь же через файловый менеджер FastPanel.

Эта папка необходима для корректной работы приложения, в ней будут храниться логи проекта.

ШАГ 5: Создание файла конфигурации pm2

Важно:

Как переключиться с root на нужного пользователя сайта?

Если в данный момент вы работаете от имени root и вам нужно перейти к пользователю вашего сайта, выполните следующую команду:

su -l имя_пользователя

Пример:

Если ваш пользователь называется siteuser, выполните:

su -l siteuser

После переключения убедитесь, что вы теперь работаете под нужным пользователем (команда для проверки):

whoami

Вывод должен быть именем вашего пользователя, например: siteuser

Создание файла конфигурации:

  1. Авторизуйтесь в панели управления FastPanel.

  2. В боковом меню перейдите в раздел «Сайты».

  3. Выберите ваш основной домен и перейдите в раздел «Файлы».

  4. В открывшейся директории сайта откройте папку вашего проекта, обычно это:

Перейдите в директорию сайта (пример):

/var/www/<имя_пользователя>/data/www/<ваш_домен>
  1. Создайте новый файл прямо в этой папке и назовите его:

ecosystem.config.cjs
  1. Скопируйте в этот файл следующий конфиг:

module.exports = {
  apps: [
    {
      name: 'iexexchanger',
      script: 'dist/exchanger/server/server.mjs',
      cwd: __dirname,
      instances: 'max',
      exec_mode: 'cluster',
      autorestart: true,
      watch: false,
      max_memory_restart: '1G',
      env: {
        NODE_ENV: 'production',
        PORT: 4000,
        PM2: true,
      },
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      error_file: 'logs/err.log',
      out_file: 'logs/out.log',
      merge_logs: true,
      time: true,
      wait_ready: false,
      listen_timeout: 3000,
      kill_timeout: 2000,
      exp_backoff_restart_delay: 100
    },
  ],
};
  1. Сохраните файл (нажмите кнопку «Сохранить» в FastPanel).

ШАГ 6: Запуск проекта

Теперь файл конфигурации создан, вам нужно запустить его через терминал от имени пользователя сайта.

  1. Перейдите в директорию проекта командой:

cd www/<ваш_домен>
  1. Запустите PM2, используя ранее созданный файл конфигурации:

pm2 start ecosystem.config.cjs
  1. Для того чтобы процессы запускались автоматически при перезагрузке сервера, выполните команду:

pm2 startup && pm2 save

ШАГ 7: Настройка автозапуска pm2

Настройте автоматический запуск pm2 после перезагрузки сервера:

Эти действия выполните под пользователем root или с помощью sudo:

Перейдите в режим администратора:

su -l root

Выполните команду настройки автозапуска pm2 для вашего пользователя FastPanel:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u <имя_пользователя> --hp /var/www/<имя_пользователя>/data

Пример:

Если ваш пользователь называется siteuser, команда будет выглядеть так:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u siteuser --hp /var/www/siteuser/data

После выполнения вы получите подтверждение о правильной настройке автозапуска.

Рекомендуется убедиться в том, что всё настроено корректно:

  • Перезагрузите сервер:

sudo reboot
  • После перезагрузки снова проверьте статус pm2:

pm2 status

Приложение должно автоматически запуститься и иметь статус online.

Полезные команды pm2

  • Остановить приложение:

pm2 stop iexexchanger
  • Перезапустить приложение:

pm2 restart iexexchanger
  • Просмотр логов в реальном времени:

pm2 logs iexexchanger

Last updated

Was this helpful?