Files
singlechat/fix-dependencies.sh

96 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# Installiere Dependencies in /opt/ypchat
set -e
TARGET_DIR="/opt/ypchat"
USER="www-data"
GROUP="www-data"
NPM_CACHE_DIR="$TARGET_DIR/.npm-cache"
echo "=========================================="
echo "Dependencies installieren"
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 ./fix-dependencies.sh"
exit 1
fi
cd "$TARGET_DIR"
# Stelle sicher, dass npm Cache-Verzeichnis existiert
mkdir -p "$NPM_CACHE_DIR"
chown -R $USER:$GROUP "$NPM_CACHE_DIR"
# Lösche node_modules falls vorhanden (für saubere Installation)
echo "Lösche alte node_modules..."
rm -rf node_modules client/node_modules
echo "✓ Alte node_modules gelöscht"
# Installiere Root-Dependencies
echo ""
echo "Installiere Root-Dependencies..."
sudo -u $USER bash -c "cd '$TARGET_DIR' && HOME='$TARGET_DIR' npm config set cache '$NPM_CACHE_DIR' && npm install"
if [ $? -ne 0 ]; then
echo "FEHLER: Installation der Root-Dependencies fehlgeschlagen!"
exit 1
fi
echo "✓ Root-Dependencies installiert"
# Installiere Client-Dependencies
echo ""
echo "Installiere Client-Dependencies..."
sudo -u $USER bash -c "cd '$TARGET_DIR/client' && HOME='$TARGET_DIR' npm config set cache '$NPM_CACHE_DIR' && npm install --legacy-peer-deps"
if [ $? -ne 0 ]; then
echo "FEHLER: Installation der Client-Dependencies fehlgeschlagen!"
exit 1
fi
echo "✓ Client-Dependencies installiert"
# Baue Client
echo ""
echo "Baue Client für Production..."
sudo -u $USER bash -c "cd '$TARGET_DIR' && HOME='$TARGET_DIR' npm config set cache '$NPM_CACHE_DIR' && npm run build"
if [ $? -ne 0 ]; then
echo "FEHLER: Build fehlgeschlagen!"
exit 1
fi
echo "✓ Client gebaut"
# Kopiere dist nach docroot
echo ""
echo "Kopiere gebaute Dateien nach docroot..."
if [ -d "$TARGET_DIR/docroot/dist" ]; then
rm -rf "$TARGET_DIR/docroot/dist"
fi
cp -r "$TARGET_DIR/client/dist" "$TARGET_DIR/docroot/"
chown -R $USER:$GROUP "$TARGET_DIR/docroot/dist"
echo "✓ Dateien kopiert"
# Setze Besitzer für node_modules
echo ""
echo "Setze Besitzer für node_modules..."
chown -R $USER:$GROUP "$TARGET_DIR/node_modules"
chown -R $USER:$GROUP "$TARGET_DIR/client/node_modules"
echo ""
echo "=========================================="
echo "Dependencies installiert!"
echo "=========================================="
echo ""
echo "Du kannst jetzt den Service starten:"
echo " sudo systemctl start ypchat"
echo " sudo systemctl status ypchat"
echo ""