Files
ospab.host/ospabhost/backend/PM2_QUICKSTART.md
2025-11-23 14:35:16 +03:00

187 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 Быстрый старт PM2
## Запуск Backend в 4 экземплярах
### Через npm scripts (рекомендуется):
```bash
# 1. Сборка проекта
npm run build
# 2. Запуск PM2
npm run pm2:start
# 3. Проверка статуса
npm run pm2:status
```
### Через скрипты:
```bash
# Дать права на выполнение (только один раз)
chmod +x start-pm2.sh restart-pm2.sh stop-pm2.sh
# Запуск
./start-pm2.sh
# Перезапуск
./restart-pm2.sh
# Перезапуск с пересборкой
./restart-pm2.sh --build
# Перезапуск с обновлением из Git
./restart-pm2.sh --update
# Остановка
./stop-pm2.sh
```
### Через PM2 напрямую:
```bash
# Запуск
pm2 start ecosystem.config.js --env production
# Сохранение конфигурации
pm2 save
# Настройка автозапуска
pm2 startup
# Выполните команду, которую выведет pm2 startup
```
## ⚙️ Настройка автозапуска
Чтобы backend автоматически запускался при перезагрузке сервера:
```bash
# 1. Запустить процесс
npm run pm2:start
# 2. Настроить автозапуск
pm2 startup
# 3. Выполнить команду, которую выведет pm2 startup
# Например:
# sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u root --hp /root
# 4. Сохранить текущую конфигурацию
pm2 save
```
## 📊 Мониторинг
```bash
# Просмотр логов
npm run pm2:logs
# Интерактивный мониторинг
npm run pm2:monit
# Статус всех процессов
npm run pm2:status
# Детальная информация
pm2 show ospab-backend
```
## 🔄 Обновление кода
```bash
# Вариант 1: Вручную
git pull origin main
npm install
npm run build
npm run pm2:restart
# Вариант 2: Через скрипт
./restart-pm2.sh --update
```
## 🛑 Остановка
```bash
# Через npm
npm run pm2:stop
# Через скрипт
./stop-pm2.sh
# Напрямую
pm2 stop ospab-backend
pm2 delete ospab-backend
pm2 save
```
## 📝 Полезные команды
```bash
# Логи в реальном времени
pm2 logs ospab-backend --lines 100
# Очистка логов
pm2 flush
# Перезапуск без даунтайма
pm2 reload ospab-backend
# Обновление PM2
npm install -g pm2@latest
pm2 update
# Резервная копия конфигурации
pm2 save --force
```
## 🔍 Проверка работы
После запуска проверьте:
```bash
# 1. Статус процессов (должно быть 4 инстанса "online")
pm2 list
# 2. Backend доступен
curl http://localhost:5000
# 3. Логи без ошибок
pm2 logs ospab-backend --lines 50
```
## ⚠️ Устранение проблем
### PM2 не запускается
```bash
# Проверить версию Node.js
node -v
# Переустановить PM2
npm install -g pm2@latest
# Удалить старую конфигурацию
pm2 kill
rm -rf ~/.pm2
# Запустить заново
npm run pm2:start
```
### Процессы крашатся
```bash
# Посмотреть ошибки
pm2 logs ospab-backend --err
# Увеличить лимит памяти в ecosystem.config.js
# max_memory_restart: '1G'
# Уменьшить количество инстансов
# instances: 2
```
## 📚 Подробная документация
См. [PM2_SETUP.md](./PM2_SETUP.md) для детальной информации.