#!/bin/sh # Upload-Skript für Webspace Deployment echo "📤 Webspace Upload Skript" echo "" # Konfiguration aus .env.upload Datei laden ENV_FILE="$(dirname "$0")/.env.upload" if [ ! -f "$ENV_FILE" ]; then echo "❌ Konfigurationsdatei nicht gefunden: $ENV_FILE" echo "" echo "📋 ERSTELLE EINE .env.upload DATEI:" echo " 1. Kopiere .env.upload.example zu .env.upload" echo " 2. Trage deine FTP-Zugangsdaten ein" echo "" echo " Beispiel:" echo " FTP_HOST=\"dein-server.de\"" echo " FTP_USER=\"dein-username\"" echo " FTP_PASS=\"dein-passwort\"" echo " FTP_PATH=\"/htdocs\"" exit 1 fi # Environment-Variablen aus .env.upload laden set -a # Export aller Variablen source "$ENV_FILE" set +a # Standard-Port falls nicht gesetzt FTP_PORT=${FTP_PORT:-22} echo "🔧 KONFIGURATION:" echo " Host: $FTP_HOST" echo " User: $FTP_USER" echo " Port: $FTP_PORT" echo " Path: $FTP_PATH" echo "" # Prüfe ob wir im deployment/scripts/ Ordner sind und wechsle zur Projekt-Root if [ "$(basename "$PWD")" = "scripts" ]; then cd ../.. elif [ "$(basename "$PWD")" = "deployment" ]; then cd .. fi # Überprüfe ob deployment/build Ordner existiert if [ ! -d "deployment/build" ]; then echo "❌ deployment/build/ Ordner nicht gefunden." echo " Führe zuerst das deploy.sh Skript aus!" exit 1 fi # Überprüfe ob lftp installiert ist if ! command -v lftp &> /dev/null; then echo "❌ lftp ist nicht installiert." echo " Installation: brew install lftp" echo "" echo "📋 MANUELLE UPLOAD-ANLEITUNG:" echo " 1. Öffne deinen FTP Client (FileZilla, etc.)" echo " 2. Verbinde zu deinem Webspace" echo " 3. Navigiere zu htdocs/ oder public_html/" echo " 4. Uploade alle Dateien aus: deployment/build/" echo "" exit 1 fi echo "⚠️ ACHTUNG: Dies überschreibt alle Dateien auf dem Webspace!" echo " Fortfahren? (y/N)" read -r response if [[ ! "$response" =~ ^[Yy]$ ]]; then echo "Abgebrochen." exit 0 fi echo "📤 Uploade via SFTP..." lftp -c " set sftp:auto-confirm yes; set ssl:verify-certificate no; open sftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT; cd $FTP_PATH; lcd deployment/build; mirror --reverse --delete --verbose --exclude-glob=node_modules/ --exclude-glob=.git/ --exclude-glob=.* --exclude area/ ./ ./; bye " if [ $? -eq 0 ]; then echo "✅ Upload erfolgreich!" echo "🌐 Deine App sollte jetzt live sein!" else echo "❌ Upload fehlgeschlagen. Prüfe deine FTP-Zugangsdaten." fi