Files
yourpart3/update-frontend.sh
2025-11-20 15:52:04 +01:00

106 lines
3.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
echo "=== YourPart Frontend Update ==="
echo "NOTE: .env files will NOT be overwritten"
# 1. Zum Frontend-Verzeichnis wechseln
cd frontend
# 2. Berechtigungen für dist-Verzeichnis korrigieren (falls vorhanden)
if [ -d "dist" ]; then
echo "Korrigiere Berechtigungen für dist-Verzeichnis..."
sudo chown -R $USER:$USER dist/ 2>/dev/null || true
fi
# 3. Alle generierten Verzeichnisse löschen
echo "Lösche alle generierten Verzeichnisse..."
rm -rf dist/
rm -rf node_modules/.vite/
rm -rf node_modules/.cache/
# 4. Verwende bestehende .env-Dateien im Zielverzeichnis für Build
# Kopiere temporär die bestehende .env vom Ziel, falls vorhanden
TEMP_ENV="/tmp/yourpart-frontend-env-$$"
if [ -f /opt/yourpart/frontend/.env ]; then
echo "Nutze bestehende .env-Datei vom Zielverzeichnis für Build..."
sudo cp /opt/yourpart/frontend/.env "$TEMP_ENV"
sudo chown $USER:$USER "$TEMP_ENV"
cp "$TEMP_ENV" .env
elif [ -f .env.production ]; then
echo "Nutze .env.production für Build..."
cp .env.production .env
elif [ -f .env.server ]; then
echo "Nutze .env.server für Build..."
cp .env.server .env
fi
# 5. Frontend neu bauen VITE_* aus Environment übernehmen oder Defaults setzen
echo "Baue Frontend neu..."
export VITE_API_BASE_URL=${VITE_API_BASE_URL:-https://www.your-part.de}
export VITE_DAEMON_SOCKET=${VITE_DAEMON_SOCKET:-wss://www.your-part.de:4551}
export VITE_CHAT_WS_URL=${VITE_CHAT_WS_URL:-wss://www.your-part.de:1235}
echo "VITE_API_BASE_URL=$VITE_API_BASE_URL"
echo "VITE_DAEMON_SOCKET=$VITE_DAEMON_SOCKET"
echo "VITE_CHAT_WS_URL=$VITE_CHAT_WS_URL"
npm run build
if [ $? -ne 0 ]; then
echo "❌ Build fehlgeschlagen!"
# Temporäre .env-Datei aufräumen
rm -f "$TEMP_ENV"
exit 1
fi
echo "✅ Build erfolgreich!"
# Temporäre .env-Datei aufräumen
rm -f "$TEMP_ENV"
# 6. Zielverzeichnis erstellen (falls nicht vorhanden)
echo "Erstelle Zielverzeichnis..."
sudo mkdir -p /opt/yourpart/frontend/dist
# 7. Altes Frontend löschen (außer .env-Dateien)
echo "Lösche altes Frontend (außer .env-Dateien)..."
sudo find /opt/yourpart/frontend/dist -mindepth 1 -exec rm -rf {} + 2>/dev/null || true
# 8. Neues Frontend kopieren
echo "Kopiere neues Frontend..."
sudo cp -r dist/* /opt/yourpart/frontend/dist/
# 9. .env-Dateien NICHT überschreiben - bestehende beibehalten
if [ -f /opt/yourpart/frontend/.env ]; then
echo "✓ Bestehende .env-Datei wurde beibehalten (nicht überschrieben)"
else
echo "⚠ Keine .env-Datei im Zielverzeichnis gefunden"
# Falls .env im Quellverzeichnis existiert, kopiere sie nur wenn sie im Ziel nicht existiert
if [ -f .env ]; then
echo "Kopiere .env-Datei (nur wenn nicht vorhanden)..."
sudo cp .env /opt/yourpart/frontend/
fi
fi
# 10. Berechtigungen setzen
echo "Setze Berechtigungen..."
sudo chown -R www-data:www-data /opt/yourpart/frontend/dist
if [ -f /opt/yourpart/frontend/.env ]; then
sudo chown www-data:www-data /opt/yourpart/frontend/.env
sudo chmod 644 /opt/yourpart/frontend/.env
fi
sudo chmod -R 755 /opt/yourpart/frontend/dist
# 11. Apache neu laden
echo "Lade Apache neu..."
sudo systemctl reload apache2
echo ""
echo "=== Frontend Update abgeschlossen! ==="
echo "✅ Frontend neu gebaut"
echo "✅ Frontend aktualisiert"
echo "✅ .env-Dateien wurden NICHT überschrieben"
echo "✅ Apache neu geladen"
echo ""