#!/bin/bash # Deployment Script für Harheimer TC Website # Sichert Produktivdaten vor dem Build und stellt sie danach wieder her echo "=== Harheimer TC Deployment ===" echo "" # 1. Git Pull echo "1. Pulling latest changes from git..." git pull if [ $? -ne 0 ]; then echo "ERROR: Git pull failed!" exit 1 fi # 2. Backup Production Data echo "" echo "2. Backing up production data..." mkdir -p .backup cp -r server/data .backup/data_backup 2>/dev/null || echo "No server/data to backup" cp public/data/termine.csv .backup/termine.csv 2>/dev/null || echo "No termine.csv to backup" cp public/data/mannschaften.csv .backup/mannschaften.csv 2>/dev/null || echo "No mannschaften.csv to backup" cp public/data/spielsysteme.csv .backup/spielsysteme.csv 2>/dev/null || echo "No spielsysteme.csv to backup" cp public/data/vereinsmeisterschaften.csv .backup/vereinsmeisterschaften.csv 2>/dev/null || echo "No vereinsmeisterschaften.csv to backup" # 3. Install dependencies echo "" echo "3. Installing dependencies..." npm install if [ $? -ne 0 ]; then echo "ERROR: npm install failed!" exit 1 fi # 4. Remove old build (but keep data!) echo "" echo "4. Removing old build output..." rm -rf .output # 5. Build echo "" echo "5. Building application..." npm run build if [ $? -ne 0 ]; then echo "ERROR: Build failed!" exit 1 fi # 6. Restore Production Data echo "" echo "6. Restoring production data..." cp -r .backup/data_backup/* server/data/ 2>/dev/null || echo "No data to restore" cp .backup/termine.csv public/data/termine.csv 2>/dev/null || echo "No termine.csv to restore" cp .backup/mannschaften.csv public/data/mannschaften.csv 2>/dev/null || echo "No mannschaften.csv to restore" cp .backup/spielsysteme.csv public/data/spielsysteme.csv 2>/dev/null || echo "No spielsysteme.csv to restore" cp .backup/vereinsmeisterschaften.csv public/data/vereinsmeisterschaften.csv 2>/dev/null || echo "No vereinsmeisterschaften.csv to restore" # 7. Cleanup backup echo "" echo "7. Cleaning up backup..." rm -rf .backup # 8. Restart PM2 echo "" echo "8. Restarting PM2..." pm2 restart harheimertc echo "" echo "=== Deployment completed successfully! ===" echo "The application is now running with the latest code and your production data preserved."