#!/bin/bash # Optionaler Parameter für STAGE (Standard: production) STAGE=${1:-production} echo "Deploying YourPart Backend..." echo "Using STAGE: $STAGE" # Zum Backend-Verzeichnis wechseln cd backend # Dependencies installieren echo "Installing dependencies..." npm ci --production # Backend nach /opt/yourpart kopieren echo "Copying backend to /opt/yourpart/backend..." sudo mkdir -p /opt/yourpart/backend sudo rm -rf /opt/yourpart/backend/* sudo cp -r * /opt/yourpart/backend/ # Berechtigungen setzen echo "Setting permissions..." sudo chown -R $USER:$USER /opt/yourpart/backend sudo chmod -R 755 /opt/yourpart/backend # .env-Datei kopieren (falls vorhanden) if [ -f .env ]; then echo "Copying .env file..." sudo cp .env /opt/yourpart/backend/ sudo chown $USER:$USER /opt/yourpart/backend/.env sudo chmod 600 /opt/yourpart/backend/.env fi # 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 deployment completed!"