Original
This commit is contained in:
112
update-server.sh
Normal file
112
update-server.sh
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
# ══════════════════════════════════════════════
|
||||
# VORTEX — Обновление на сервере
|
||||
# ══════════════════════════════════════════════
|
||||
|
||||
set -e
|
||||
|
||||
APP_DIR="/var/www/vortex"
|
||||
ARCHIVE="/root/vortex-deploy.tar.gz"
|
||||
ENV_BACKUP="/root/vortex-env-backup"
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
print_step() { echo -e "\n${CYAN}━━━ $1 ━━━${NC}\n"; }
|
||||
print_ok() { echo -e "${GREEN} ✓ $1${NC}"; }
|
||||
print_err() { echo -e "${RED} ✗ $1${NC}"; }
|
||||
|
||||
echo ""
|
||||
echo "══════════════════════════════════════════════"
|
||||
echo " VORTEX — Обновление сервера"
|
||||
echo "══════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
# Проверка архива
|
||||
if [ ! -f "$ARCHIVE" ]; then
|
||||
print_err "Архив $ARCHIVE не найден!"
|
||||
echo " Сначала запустите update-local.bat на вашем ПК"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. Остановка сервера
|
||||
print_step "1/7 — Остановка сервера"
|
||||
pm2 stop vortex-server 2>/dev/null || true
|
||||
print_ok "Сервер остановлен"
|
||||
|
||||
# 2. Бэкап .env
|
||||
print_step "2/7 — Сохранение .env"
|
||||
if [ -f "$APP_DIR/apps/server/.env" ]; then
|
||||
cp "$APP_DIR/apps/server/.env" "$ENV_BACKUP"
|
||||
print_ok ".env сохранён в $ENV_BACKUP"
|
||||
else
|
||||
print_err ".env не найден — пропускаем"
|
||||
fi
|
||||
|
||||
# 3. Бэкап uploads
|
||||
print_step "3/7 — Сохранение загруженных файлов"
|
||||
if [ -d "$APP_DIR/apps/server/uploads/avatars" ]; then
|
||||
cp -r "$APP_DIR/apps/server/uploads/avatars" /root/vortex-avatars-backup 2>/dev/null || true
|
||||
print_ok "Аватарки сохранены"
|
||||
fi
|
||||
|
||||
# 4. Распаковка
|
||||
print_step "4/7 — Распаковка обновления"
|
||||
tar -xzf "$ARCHIVE" -C "$APP_DIR"
|
||||
print_ok "Файлы обновлены"
|
||||
|
||||
# Восстановление .env
|
||||
if [ -f "$ENV_BACKUP" ]; then
|
||||
cp "$ENV_BACKUP" "$APP_DIR/apps/server/.env"
|
||||
print_ok ".env восстановлен"
|
||||
fi
|
||||
|
||||
# Восстановление аватарок
|
||||
if [ -d "/root/vortex-avatars-backup" ]; then
|
||||
mkdir -p "$APP_DIR/apps/server/uploads/avatars"
|
||||
cp -r /root/vortex-avatars-backup/* "$APP_DIR/apps/server/uploads/avatars/" 2>/dev/null || true
|
||||
rm -rf /root/vortex-avatars-backup
|
||||
print_ok "Аватарки восстановлены"
|
||||
fi
|
||||
|
||||
# 5. Установка зависимостей
|
||||
print_step "5/7 — Установка зависимостей"
|
||||
cd "$APP_DIR"
|
||||
npm install --production=false --legacy-peer-deps
|
||||
print_ok "Зависимости установлены"
|
||||
|
||||
# 6. Сборка
|
||||
print_step "6/7 — Сборка проекта"
|
||||
|
||||
cd "$APP_DIR/apps/server"
|
||||
npx prisma generate
|
||||
print_ok "Prisma Client сгенерирован"
|
||||
|
||||
npx prisma db push --accept-data-loss
|
||||
print_ok "База данных синхронизирована"
|
||||
|
||||
npx tsc
|
||||
print_ok "Сервер скомпилирован"
|
||||
|
||||
cd "$APP_DIR/apps/web"
|
||||
npx vite build
|
||||
print_ok "Фронтенд собран"
|
||||
|
||||
# 7. Запуск
|
||||
print_step "7/7 — Запуск сервера"
|
||||
pm2 restart vortex-server
|
||||
pm2 save
|
||||
print_ok "Сервер запущен"
|
||||
|
||||
# Очистка
|
||||
rm -f "$ARCHIVE"
|
||||
|
||||
echo ""
|
||||
echo "══════════════════════════════════════════════"
|
||||
echo -e " ${GREEN}✓ ОБНОВЛЕНИЕ ЗАВЕРШЕНО!${NC}"
|
||||
echo ""
|
||||
echo " Проверьте: pm2 logs vortex-server --lines 10"
|
||||
echo "══════════════════════════════════════════════"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user