Настройка PM2
Эта инструкция поможет вам настроить работу вашего сайта так, чтобы оно всегда было доступно и автоматически запускалось после перезагрузки сервера.
Большинство команд в этой инструкции необходимо выполнять от имени пользователя с правами администратора (root). Чтобы переключиться в режим администратора, используйте команду:
sudo -l root
Однако некоторые команды должны выполняться от имени обычного пользователя сайта (без привилегий администратора). В таких случаях явно указано, если нужно выйти из режима администратора и использовать обычного пользователя.
su -l имя_пользователя
Шаг 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

Если версия npm устарела, обязательно выполните команду из шага №2 выше, чтобы обеспечить совместимость с последними библиотеками и инструментами.
ШАГ 3: Установка pm2
pm2 – это программа, которая следит, чтобы ваш сайт всегда работал.
Выполните команду:
sudo npm install pm2@latest -g
Проверьте установку:
pm2 -v

ШАГ 4: Подготовка проекта на основном домене (через FastPanel)
Эти шаги помогут вам загрузить и правильно расположить файлы вашего проекта на основном домене через панель управления FastPanel.
Как разместить проект:
Откройте панель управления FastPanel.
Перейдите в раздел «Сайты» → «Файлы» вашего основного сайта.
Если вы ещё не распаковали проект на сервере:
Загрузите архив с проектом с вашего компьютера в корневой каталог вашего сайта через встроенный файловый менеджер FastPanel.
Распакуйте архив непосредственно в этом же каталоге.
Проверьте, что структура файлов проекта после распаковки выглядит именно так:
ваш_проект/
├── dist/
│ └── exchanger/
│ └── server/
│ └── server.mjs
├── logs/ (если папки нет, создайте её через панель)
└── (другие файлы)
Важно
Убедитесь, что папка logs присутствует в корневом каталоге проекта. Если её нет, создайте её прямо здесь же через файловый менеджер FastPanel.
Эта папка необходима для корректной работы приложения, в ней будут храниться логи проекта.
ШАГ 5: Создание файла конфигурации pm2
Важно:
Не запускайте и не создавайте конфигурационный файл PM2 от имени пользователя root.
Используйте только обычного пользователя сайта (тот, под которым загружены файлы через панель управления FastPanel).
Это необходимо для предотвращения возможных проблем с правами доступа и корректной работы вашего проекта.
Запуск PM2 под правильным пользователем обеспечивает стабильную и безопасную работу приложения, сохраняя корректные права доступа к файлам и папкам проекта.
Как переключиться с root на нужного пользователя сайта?
Если в данный момент вы работаете от имени root и вам нужно перейти к пользователю вашего сайта, выполните следующую команду:
su -l имя_пользователя
Пример:
Если ваш пользователь называется siteuser, выполните:
su -l siteuser
После переключения убедитесь, что вы теперь работаете под нужным пользователем (команда для проверки):
whoami
Вывод должен быть именем вашего пользователя, например: siteuser
Создание файла конфигурации:
Авторизуйтесь в панели управления FastPanel.
В боковом меню перейдите в раздел «Сайты».
Выберите ваш основной домен и перейдите в раздел «Файлы».
В открывшейся директории сайта откройте папку вашего проекта, обычно это:
Перейдите в директорию сайта (пример):
/var/www/<имя_пользователя>/data/www/<ваш_домен>
Создайте новый файл прямо в этой папке и назовите его:
ecosystem.config.cjs
Скопируйте в этот файл следующий конфиг:
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
},
],
};
Сохраните файл (нажмите кнопку «Сохранить» в FastPanel).
ШАГ 6: Запуск проекта
Теперь файл конфигурации создан, вам нужно запустить его через терминал от имени пользователя сайта.
Перейдите в директорию проекта командой:
cd www/<ваш_домен>
Запустите PM2, используя ранее созданный файл конфигурации:
pm2 start ecosystem.config.cjs
Для того чтобы процессы запускались автоматически при перезагрузке сервера, выполните команду:
pm2 startup && pm2 save
ШАГ 7: Настройка автозапуска pm2
Автоматический запуск приложения через 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?