Remove Google Chrome RPM package file
This commit is contained in:
105
update-backend.sh
Executable file
105
update-backend.sh
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Optionaler Parameter für STAGE (Standard: production)
|
||||
STAGE=${1:-production}
|
||||
|
||||
echo "Updating YourPart Backend..."
|
||||
echo "Using STAGE: $STAGE"
|
||||
echo "NOTE: .env files will NOT be overwritten"
|
||||
|
||||
# Zum Backend-Verzeichnis wechseln
|
||||
cd backend
|
||||
|
||||
# Alle generierten Verzeichnisse löschen
|
||||
echo "Lösche alle generierten Verzeichnisse..."
|
||||
rm -rf node_modules/.cache/
|
||||
rm -rf logs/
|
||||
rm -rf tmp/
|
||||
|
||||
# Dependencies installieren
|
||||
echo "Installing dependencies..."
|
||||
npm ci --production
|
||||
|
||||
# Altes Backend löschen und neues kopieren
|
||||
echo "Lösche altes Backend (außer .env)..."
|
||||
# Sichere .env-Dateien temporär
|
||||
TEMP_ENV_DIR="/tmp/yourpart-backend-env-$$"
|
||||
if [ -d /opt/yourpart/backend ]; then
|
||||
sudo mkdir -p "$TEMP_ENV_DIR"
|
||||
sudo find /opt/yourpart/backend -maxdepth 1 -name '.env*' -type f -exec sudo cp {} "$TEMP_ENV_DIR/" \; 2>/dev/null || true
|
||||
# Lösche alles im Backend-Verzeichnis
|
||||
sudo rm -rf /opt/yourpart/backend/* /opt/yourpart/backend/.[!.]* 2>/dev/null || true
|
||||
# Stelle .env-Dateien wieder her
|
||||
if [ -d "$TEMP_ENV_DIR" ] && [ "$(ls -A $TEMP_ENV_DIR 2>/dev/null)" ]; then
|
||||
sudo cp "$TEMP_ENV_DIR"/* /opt/yourpart/backend/ 2>/dev/null || true
|
||||
echo "✓ .env-Dateien wurden gesichert und wiederhergestellt"
|
||||
fi
|
||||
sudo rm -rf "$TEMP_ENV_DIR"
|
||||
fi
|
||||
|
||||
echo "Erstelle Backend-Verzeichnis (falls nicht vorhanden)..."
|
||||
sudo mkdir -p /opt/yourpart/backend
|
||||
|
||||
echo "Kopiere neues Backend (ohne .env-Dateien)..."
|
||||
# Verwende rsync, um .env-Dateien auszuschließen
|
||||
if command -v rsync &> /dev/null; then
|
||||
sudo rsync -av --exclude='.env*' --exclude='node_modules' . /opt/yourpart/backend/ 2>/dev/null
|
||||
# node_modules separat kopieren (ohne .env)
|
||||
if [ -d node_modules ]; then
|
||||
sudo rsync -av --exclude='.env*' node_modules/ /opt/yourpart/backend/node_modules/ 2>/dev/null || \
|
||||
sudo cp -r node_modules /opt/yourpart/backend/ 2>/dev/null
|
||||
fi
|
||||
else
|
||||
# Fallback: Kopiere alles und lösche dann .env-Dateien
|
||||
sudo cp -r * /opt/yourpart/backend/ 2>/dev/null
|
||||
sudo find /opt/yourpart/backend -name '.env*' -type f -delete 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Stelle sicher, dass .env-Dateien nicht überschrieben wurden
|
||||
echo "Stelle sicher, dass .env-Dateien erhalten bleiben..."
|
||||
if [ -f /opt/yourpart/backend/.env ]; then
|
||||
echo "✓ Bestehende .env-Datei wurde beibehalten"
|
||||
else
|
||||
echo "⚠ Keine .env-Datei im Zielverzeichnis gefunden"
|
||||
# Falls .env im Quellverzeichnis existiert, kopiere sie nur wenn sie im Ziel nicht existiert
|
||||
if [ -f .env ]; then
|
||||
echo "Kopiere .env-Datei (nur wenn nicht vorhanden)..."
|
||||
sudo cp .env /opt/yourpart/backend/
|
||||
sudo chown yourpart:yourpart /opt/yourpart/backend/.env
|
||||
sudo chmod 600 /opt/yourpart/backend/.env
|
||||
fi
|
||||
fi
|
||||
|
||||
# Berechtigungen setzen
|
||||
echo "Setting permissions..."
|
||||
sudo chown -R yourpart:yourpart /opt/yourpart/backend
|
||||
sudo chmod -R 755 /opt/yourpart/backend
|
||||
# Stelle sicher, dass .env-Dateien die richtigen Berechtigungen haben
|
||||
if [ -f /opt/yourpart/backend/.env ]; then
|
||||
sudo chmod 600 /opt/yourpart/backend/.env
|
||||
fi
|
||||
|
||||
# Systemd-Service aktualisieren und neu laden
|
||||
echo "Updating systemd service..."
|
||||
sudo cp yourpart.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
# Datenbank-Synchronisation durchführen
|
||||
echo "Running database synchronization..."
|
||||
cd /opt/yourpart/backend
|
||||
|
||||
# STAGE für Schema-Updates verwenden
|
||||
echo "Running database sync with STAGE=$STAGE..."
|
||||
export STAGE=$STAGE && npm run sync-db
|
||||
|
||||
# Service neu starten
|
||||
echo "Restarting yourpart service..."
|
||||
sudo systemctl restart yourpart
|
||||
|
||||
# Kurz warten und Status prüfen
|
||||
sleep 2
|
||||
echo "Checking service status..."
|
||||
sudo systemctl status yourpart --no-pager
|
||||
|
||||
echo "Backend update completed!"
|
||||
|
||||
Reference in New Issue
Block a user