96 lines
2.5 KiB
Bash
Executable File
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 ""
|
|
|