Files
singlechat/quick-update.sh

80 lines
2.2 KiB
Bash
Executable File

#!/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 ""