diff --git a/google-chrome-stable_current_x86_64.rpm b/google-chrome-stable_current_x86_64.rpm deleted file mode 100644 index ab55b2a..0000000 Binary files a/google-chrome-stable_current_x86_64.rpm and /dev/null differ diff --git a/update-backend.sh b/update-backend.sh new file mode 100755 index 0000000..c4b5b43 --- /dev/null +++ b/update-backend.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +# Optionaler Parameter für STAGE (Standard: production) +STAGE=${1:-production} + +echo "Updating YourPart Backend..." +echo "Using STAGE: $STAGE" +echo "NOTE: .env files will NOT be overwritten" + +# Zum Backend-Verzeichnis wechseln +cd backend + +# Alle generierten Verzeichnisse löschen +echo "Lösche alle generierten Verzeichnisse..." +rm -rf node_modules/.cache/ +rm -rf logs/ +rm -rf tmp/ + +# Dependencies installieren +echo "Installing dependencies..." +npm ci --production + +# Altes Backend löschen und neues kopieren +echo "Lösche altes Backend (außer .env)..." +# Sichere .env-Dateien temporär +TEMP_ENV_DIR="/tmp/yourpart-backend-env-$$" +if [ -d /opt/yourpart/backend ]; then + sudo mkdir -p "$TEMP_ENV_DIR" + sudo find /opt/yourpart/backend -maxdepth 1 -name '.env*' -type f -exec sudo cp {} "$TEMP_ENV_DIR/" \; 2>/dev/null || true + # Lösche alles im Backend-Verzeichnis + sudo rm -rf /opt/yourpart/backend/* /opt/yourpart/backend/.[!.]* 2>/dev/null || true + # Stelle .env-Dateien wieder her + if [ -d "$TEMP_ENV_DIR" ] && [ "$(ls -A $TEMP_ENV_DIR 2>/dev/null)" ]; then + sudo cp "$TEMP_ENV_DIR"/* /opt/yourpart/backend/ 2>/dev/null || true + echo "✓ .env-Dateien wurden gesichert und wiederhergestellt" + fi + sudo rm -rf "$TEMP_ENV_DIR" +fi + +echo "Erstelle Backend-Verzeichnis (falls nicht vorhanden)..." +sudo mkdir -p /opt/yourpart/backend + +echo "Kopiere neues Backend (ohne .env-Dateien)..." +# Verwende rsync, um .env-Dateien auszuschließen +if command -v rsync &> /dev/null; then + sudo rsync -av --exclude='.env*' --exclude='node_modules' . /opt/yourpart/backend/ 2>/dev/null + # node_modules separat kopieren (ohne .env) + if [ -d node_modules ]; then + sudo rsync -av --exclude='.env*' node_modules/ /opt/yourpart/backend/node_modules/ 2>/dev/null || \ + sudo cp -r node_modules /opt/yourpart/backend/ 2>/dev/null + fi +else + # Fallback: Kopiere alles und lösche dann .env-Dateien + sudo cp -r * /opt/yourpart/backend/ 2>/dev/null + sudo find /opt/yourpart/backend -name '.env*' -type f -delete 2>/dev/null || true +fi + +# Stelle sicher, dass .env-Dateien nicht überschrieben wurden +echo "Stelle sicher, dass .env-Dateien erhalten bleiben..." +if [ -f /opt/yourpart/backend/.env ]; then + echo "✓ Bestehende .env-Datei wurde beibehalten" +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/backend/ + sudo chown yourpart:yourpart /opt/yourpart/backend/.env + sudo chmod 600 /opt/yourpart/backend/.env + fi +fi + +# Berechtigungen setzen +echo "Setting permissions..." +sudo chown -R yourpart:yourpart /opt/yourpart/backend +sudo chmod -R 755 /opt/yourpart/backend +# Stelle sicher, dass .env-Dateien die richtigen Berechtigungen haben +if [ -f /opt/yourpart/backend/.env ]; then + sudo chmod 600 /opt/yourpart/backend/.env +fi + +# Systemd-Service aktualisieren und neu laden +echo "Updating systemd service..." +sudo cp yourpart.service /etc/systemd/system/ +sudo systemctl daemon-reload + +# Datenbank-Synchronisation durchführen +echo "Running database synchronization..." +cd /opt/yourpart/backend + +# STAGE für Schema-Updates verwenden +echo "Running database sync with STAGE=$STAGE..." +export STAGE=$STAGE && npm run sync-db + +# Service neu starten +echo "Restarting yourpart service..." +sudo systemctl restart yourpart + +# Kurz warten und Status prüfen +sleep 2 +echo "Checking service status..." +sudo systemctl status yourpart --no-pager + +echo "Backend update completed!" + diff --git a/update-frontend.sh b/update-frontend.sh new file mode 100755 index 0000000..bb84a84 --- /dev/null +++ b/update-frontend.sh @@ -0,0 +1,105 @@ +#!/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 "" + diff --git a/update.sh b/update.sh new file mode 100755 index 0000000..a0a7388 --- /dev/null +++ b/update.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +echo "=== YourPart Update Script ===" +echo "Dieses Script aktualisiert die Anwendung OHNE .env-Dateien zu überschreiben" +echo "" + +# Prüfen ob wir im richtigen Verzeichnis sind +if [ ! -f "package.json" ]; then + echo "Error: Please run this script from the YourPart3 root directory" + exit 1 +fi + +# Prüfen ob sudo verfügbar ist +if ! command -v sudo &> /dev/null; then + echo "Error: sudo is required but not installed" + exit 1 +fi + +# Backend updaten +echo "" +echo "=== Updating Backend ===" +./update-backend.sh + +# Frontend bauen und updaten +echo "" +echo "=== Building and Updating Frontend ===" +./update-frontend.sh + +echo "" +echo "=== Update Completed! ===" +echo "Your application has been updated." +echo "" +echo "To check logs:" +echo " Backend: sudo journalctl -u yourpart.service -f" +echo " Apache: sudo tail -f /var/log/apache2/yourpart.*.log" +