Files
yourpart3/update-backend.sh
Torsten Schulz (local) f35db4b1a1
All checks were successful
Deploy to production / deploy (push) Successful in 5m35s
feat(update-backend): add .env file handling from live system
- Implemented functionality to copy the .env file from the live system to the backend directory if it exists.
- Added ownership change for the copied .env file to ensure proper permissions.
- Included user feedback for successful or failed .env file transfer.
2026-03-30 14:16:15 +02:00

77 lines
2.1 KiB
Bash
Executable File

#!/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..."
if sudo -n test -f "$CURRENT_BACKEND/.env"; then
sudo -n cp "$CURRENT_BACKEND/.env" "$BACKEND_DIR/.env"
sudo -n chown tsschulz:tsschulz "$BACKEND_DIR/.env"
echo "✓ .env-Datei übernommen"
else
echo "⚠ Keine lesbare .env-Datei in $CURRENT_BACKEND gefunden"
fi
TEMP_ENV_DIR="/tmp/yourpart-env-backup-$$"
mkdir -p "$TEMP_ENV_DIR"
echo "Sichere .env-Dateien aus $CURRENT_BACKEND..."
if [ -d "$CURRENT_BACKEND" ]; then
find "$CURRENT_BACKEND" -maxdepth 1 -name '.env*' -type f -exec cp {} "$TEMP_ENV_DIR/" \; 2>/dev/null || true
if [ "$(ls -A "$TEMP_ENV_DIR" 2>/dev/null)" ]; then
echo "✓ .env-Dateien gesichert: $(ls "$TEMP_ENV_DIR")"
cp "$TEMP_ENV_DIR"/.env* "$BACKEND_DIR"/ 2>/dev/null || true
else
echo "⚠ Keine .env-Dateien in $CURRENT_BACKEND gefunden"
fi
fi
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"
if [ -f "$BACKEND_DIR/.env" ]; then
sudo -n chmod 600 "$BACKEND_DIR/.env"
fi
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"