80 lines
2.2 KiB
Bash
Executable File
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 ""
|
|
|