#!/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" if [ $? -ne 0 ]; then echo "FEHLER: Installation der Client-Dependencies fehlgeschlagen!" exit 1 fi echo "✓ Client-Dependencies installiert" # 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 ""