#!/usr/bin/env bash set -euo pipefail TARGET_DIR="${1:?target dir required}" STAGE="${2:-production}" BACKEND_DIR="$TARGET_DIR/backend" CURRENT_LINK="/opt/yourpart" CURRENT_BACKEND="$CURRENT_LINK/backend" DATA_DIR="/opt/yourpart-data" echo "Updating YourPart Backend..." echo "Ziel: $BACKEND_DIR" echo "Using STAGE: $STAGE" echo "NOTE: .env files will NOT be overwritten" cd "$BACKEND_DIR" echo "Lösche alle generierten Verzeichnisse..." rm -rf node_modules/.cache/ rm -rf logs/ rm -rf tmp/ echo "Installing dependencies..." npm ci --production echo "Übernehme .env-Dateien vom Live-System..." SOURCE_ENV="/opt/yourpart/backend/.env" TARGET_ENV="$BACKEND_DIR/.env" echo "Quelle: $SOURCE_ENV" echo "Ziel: $TARGET_ENV" sudo -n ls -l "$SOURCE_ENV" sudo -n install -m 600 -o yourpart -g yourpart "$SOURCE_ENV" "$TARGET_ENV" echo "Prüfe kopierte Datei..." ls -l "$TARGET_ENV" sudo -n head -n 1 "$TARGET_ENV" >/dev/null echo "✓ .env-Datei wurde übernommen" sudo -n mkdir -p "$DATA_DIR/adult-verification" if [ -f "$BACKEND_DIR/.env" ]; then echo "✓ .env-Datei ist vorhanden" else echo "⚠ WARNUNG: Keine .env-Datei in $BACKEND_DIR gefunden!" fi echo "Setting permissions..." sudo -n chown -R yourpart:yourpart "$BACKEND_DIR" sudo -n chmod -R 755 "$BACKEND_DIR" sudo -n chown -R yourpart:yourpart "$DATA_DIR" sudo -n chmod -R 755 "$DATA_DIR" echo "Updating systemd service..." sudo -n cp "$TARGET_DIR/yourpart.service" /etc/systemd/system/ sudo -n systemctl daemon-reload echo "Running database synchronization..." cd "$BACKEND_DIR" export STAGE="$STAGE" echo "Backend update completed!" rm -rf "$TEMP_ENV_DIR"