92 lines
3.2 KiB
Bash
92 lines
3.2 KiB
Bash
#!/bin/bash
|
||
# Deploy script для обновления ospab-host на сервере
|
||
# Использование: ./deploy.sh
|
||
|
||
set -e # Выход при первой ошибке
|
||
|
||
echo "╔════════════════════════════════════════════════════════════╗"
|
||
echo "║ DEPLOYMENT: VPS Sync + Logging Optimization ║"
|
||
echo "╚════════════════════════════════════════════════════════════╝"
|
||
|
||
BACKEND_DIR="/var/www/ospab-host/backend"
|
||
|
||
# 1. Git update
|
||
echo ""
|
||
echo "📥 [1/6] Загружаю обновления из GitHub..."
|
||
cd /var/www/ospab-host
|
||
git pull origin main || {
|
||
echo "❌ Ошибка: не удалось обновить git"
|
||
exit 1
|
||
}
|
||
|
||
# 2. Clean node_modules (на случай если были проблемы с prisma)
|
||
echo ""
|
||
echo "🧹 [2/6] Очищаю node_modules..."
|
||
cd $BACKEND_DIR
|
||
rm -rf node_modules package-lock.json
|
||
echo "✅ Удалено"
|
||
|
||
# 3. Install dependencies
|
||
echo ""
|
||
echo "📚 [3/6] Переустанавливаю зависимости..."
|
||
npm cache clean --force
|
||
npm install || {
|
||
echo "❌ Ошибка: не удалось установить зависимости"
|
||
exit 1
|
||
}
|
||
echo "✅ Установлено"
|
||
|
||
# 4. Build
|
||
echo ""
|
||
echo "🔨 [4/6] Собираю backend..."
|
||
npm run build || {
|
||
echo "❌ Ошибка: не удалось собрать backend"
|
||
exit 1
|
||
}
|
||
echo "✅ Собрано"
|
||
|
||
# 5. Restart backend
|
||
echo ""
|
||
echo "🔄 [5/6] Перезагружаю backend..."
|
||
pm2 restart ospab-backend || {
|
||
echo "❌ Ошибка: не удалось перезагрузить backend"
|
||
echo " Убедитесь что PM2 установлен: npm install -g pm2"
|
||
exit 1
|
||
}
|
||
sleep 2
|
||
echo "✅ Перезагружено"
|
||
|
||
# 6. Health check
|
||
echo ""
|
||
echo "✅ [6/6] Проверяю статус..."
|
||
echo ""
|
||
|
||
# Check health endpoint
|
||
HEALTH=$(curl -s https://ospab.host:5000/health | grep -o '"status":"ok"' || echo "failed")
|
||
if [[ $HEALTH == *"ok"* ]]; then
|
||
echo "✅ Health check: OK"
|
||
else
|
||
echo "❌ Health check: FAILED"
|
||
fi
|
||
|
||
# Check VPS Sync
|
||
SYNC=$(curl -s https://ospab.host:5000/api/vps/sync/status | grep -o '"status":"connected"' || echo "failed")
|
||
if [[ $SYNC == *"connected"* ]]; then
|
||
echo "✅ VPS Sync: CONNECTED"
|
||
else
|
||
echo "⚠️ VPS Sync: DISABLED (check .env)"
|
||
fi
|
||
|
||
echo ""
|
||
echo "╔════════════════════════════════════════════════════════════╗"
|
||
echo "║ ✨ DEPLOYMENT COMPLETE ║"
|
||
echo "╚════════════════════════════════════════════════════════════╝"
|
||
echo ""
|
||
echo "📊 Backend logs:"
|
||
echo " pm2 logs ospab-backend | grep VPS"
|
||
echo ""
|
||
echo "🔍 Проверить VPS Sync:"
|
||
echo " curl https://ospab.host:5000/api/vps/sync/status"
|
||
echo ""
|
||
echo "✅ Готово!"
|