Files
yourpart3/deploy-frontend.sh
Torsten Schulz (local) 3176a8b07f
All checks were successful
Deploy to production / deploy (push) Successful in 1m59s
feat: füge sicheres Backup des alten Frontends hinzu und verbessere Fehlerbehandlung in normalizePool
2026-06-04 18:20:07 +02:00

103 lines
3.0 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 Deployment ==="
# 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. Optional: .env.server übernehmen, falls vorhanden (nicht überschreiben, wenn nicht vorhanden)
if [ -f .env.server ]; then
echo "Nutze .env.server für Build-Defaults..."
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}
# Standard: Daemon direkt auf Port 4551, nicht über Apache-Proxy
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"
# 5a. Dependencies installieren
echo "Installiere Dependencies..."
npm install
if [ $? -ne 0 ]; then
echo "❌ npm install fehlgeschlagen!"
exit 1
fi
# 5b. Frontend neu bauen
npm run build
if [ $? -ne 0 ]; then
echo "❌ Build fehlgeschlagen!"
exit 1
fi
echo "✅ Build erfolgreich!"
# 6. Zielverzeichnis erstellen (falls nicht vorhanden)
echo "Erstelle Zielverzeichnis..."
sudo mkdir -p /opt/yourpart/frontend/dist
# 7. Sicheres Backup des alten Frontends (timestamped). Vermeidet Datenverlust bei Fehlern.
if [ -d "/opt/yourpart/frontend/dist" ]; then
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
echo "Erstelle Backup von altem Frontend nach /opt/yourpart/frontend/dist.backup.$TIMESTAMP"
sudo mv /opt/yourpart/frontend/dist /opt/yourpart/frontend/dist.backup.$TIMESTAMP || true
fi
# 8. Zielverzeichnis neu erstellen
echo "Erstelle Zielverzeichnis neu..."
sudo mkdir -p /opt/yourpart/frontend/dist
# 9. Neues Frontend kopieren
echo "Kopiere neues Frontend..."
sudo cp -r dist/* /opt/yourpart/frontend/dist/
# 10. (Optional) .env Datei kopieren, falls existiert
if [ -f .env ]; then
echo "Kopiere .env Datei..."
sudo cp .env /opt/yourpart/frontend/
fi
# 11. 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
# 12. Apache neu laden
echo "Lade Apache neu..."
sudo systemctl reload apache2
echo ""
echo "=== Frontend Deployment abgeschlossen! ==="
echo "✅ Frontend neu gebaut"
echo "✅ Frontend deployt"
echo "✅ Apache neu geladen"
echo ""
echo "Testen Sie jetzt die Anwendung!"
echo "API-Requests sollten jetzt an /api/... gehen statt localhost:3001"