- Updated .gitignore to exclude /deployment/build/ directory - Added FTP_PORT configuration to .env.upload.example - Enhanced upload.sh to support custom SSH ports (default 22, configurable) - Deployment build artifacts are now properly excluded from version control The upload script now correctly handles custom SSH ports like 2222.
95 lines
2.5 KiB
Bash
Executable File
95 lines
2.5 KiB
Bash
Executable File
#!/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
|