#!/bin/bash # Schnelles Update-Script für SingleChat # Kopiert nur geänderte Server-Dateien und baut den Client neu set -e SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" TARGET_DIR="/opt/ypchat" USER="www-data" GROUP="www-data" echo "==========================================" echo "SingleChat Quick Update" echo "==========================================" # Prüfe ob als root ausgeführt if [ "$EUID" -ne 0 ]; then echo "FEHLER: Dieses Skript muss als root ausgeführt werden!" echo "Bitte führe aus: sudo ./quick-update.sh" exit 1 fi # Kopiere Server-Dateien echo "Kopiere Server-Dateien..." cp "$SOURCE_DIR/server/routes.js" "$TARGET_DIR/server/" cp "$SOURCE_DIR/server/broadcast.js" "$TARGET_DIR/server/" cp "$SOURCE_DIR/server/index.js" "$TARGET_DIR/server/" 2>/dev/null || echo "Hinweis: index.js nicht kopiert (falls unverändert)" chown -R $USER:$GROUP "$TARGET_DIR/server" echo "✓ Server-Dateien kopiert" # Erstelle tmp und logs Verzeichnisse echo "Erstelle tmp und logs Verzeichnisse..." mkdir -p "$TARGET_DIR/tmp" "$TARGET_DIR/logs" chown -R $USER:$GROUP "$TARGET_DIR/tmp" "$TARGET_DIR/logs" echo "✓ Verzeichnisse erstellt" # Baue Client neu echo "" echo "Baue Client neu..." cd "$SOURCE_DIR" npm run build if [ $? -ne 0 ]; then echo "FEHLER: Build fehlgeschlagen!" exit 1 fi echo "✓ Client gebaut" # Kopiere gebaute Client-Dateien echo "" echo "Kopiere gebaute Client-Dateien..." if [ -d "$TARGET_DIR/docroot/dist" ]; then rm -rf "$TARGET_DIR/docroot/dist" fi cp -r "$SOURCE_DIR/client/dist" "$TARGET_DIR/docroot/" chown -R $USER:$GROUP "$TARGET_DIR/docroot/dist" echo "✓ Client-Dateien kopiert" # Installiere multer falls nötig echo "" echo "Prüfe Dependencies..." cd "$TARGET_DIR" NPM_CACHE_DIR="$TARGET_DIR/.npm-cache" sudo -u $USER bash -c "cd '$TARGET_DIR' && HOME='$TARGET_DIR' npm config set cache '$NPM_CACHE_DIR' && npm install multer --save" 2>/dev/null || echo "multer bereits installiert" echo "" echo "==========================================" echo "Update abgeschlossen!" echo "==========================================" echo "" echo "Starte Service neu mit:" echo " sudo systemctl restart ypchat" echo " sudo systemctl status ypchat" echo ""