#!/bin/bash set -e BACKUP_DIR="$HOME/cats-backups/$(date +%Y-%m-%d_%H-%M-%S)" echo "==> Creating backup at $BACKUP_DIR ..." mkdir -p "$BACKUP_DIR" # Backup database if [ -f server/data.db ]; then cp server/data.db "$BACKUP_DIR/data.db" echo " ✓ data.db backed up" else echo " ⚠ data.db not found, skipping" fi # Backup uploads if [ -d server/uploads ] && [ "$(ls -A server/uploads 2>/dev/null)" ]; then cp -r server/uploads "$BACKUP_DIR/uploads" echo " ✓ uploads/ backed up ($(ls server/uploads | wc -l) files)" else echo " ⚠ uploads/ empty or not found, skipping" fi # Keep only last 10 backups BACKUP_ROOT="$HOME/cats-backups" BACKUP_COUNT=$(ls -1 "$BACKUP_ROOT" | wc -l) if [ "$BACKUP_COUNT" -gt 10 ]; then ls -1t "$BACKUP_ROOT" | tail -n +11 | xargs -I{} rm -rf "$BACKUP_ROOT/{}" echo " ✓ Old backups pruned (kept last 10)" fi echo "" echo "==> Pulling latest changes..." git pull echo "==> Installing server dependencies..." npm install --prefix server echo "==> Installing client dependencies..." npm install --prefix client echo "==> Building client..." npm run build --prefix client echo "==> Restarting PM2 process..." sudo pm2 restart cats sudo pm2 save echo "" echo "==> Done! Site updated at http://cats.heagbokat-server.ru" echo " Backup saved to: $BACKUP_DIR"