#!/bin/bash read -p "Dolibarr Update starten? (y/n): " confirm [[ "$confirm" != "y" ]] && exit set -euo pipefail VERSION="23.0.3" BACKUPDIR="/root/dolibarr-backup-$(date +%F-%H%M)" INSTALLDIR="/usr/share/dolibarr" OLDDIR="/usr/share/dolibarr-old" TMPDIR="/tmp/dolibarr-update" echo "=== Dolibarr Update startet ===" mkdir -p "$BACKUPDIR" mkdir -p "$TMPDIR" echo "=== Backup Dateien ===" tar -czf "$BACKUPDIR/dolibarr-files.tar.gz" "$INSTALLDIR" echo "=== DB Daten auslesen ===" DB_NAME=$(grep dolibarr_main_db_name /etc/dolibarr/conf.php | cut -d"'" -f2) DB_USER=$(grep dolibarr_main_db_user /etc/dolibarr/conf.php | cut -d"'" -f2) DB_PASS=$(grep dolibarr_main_db_pass /etc/dolibarr/conf.php | cut -d"'" -f2) echo "=== SQL Backup ===" mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" \ > "$BACKUPDIR/dolibarr.sql" echo "=== install.lock entfernen ===" rm -f /var/lib/dolibarr/documents/install.lock echo "=== Download Dolibarr $VERSION ===" cd "$TMPDIR" wget "https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/$VERSION/dolibarr-$VERSION.tgz/download" -O dolibarr.tgz echo "=== Entpacken ===" tar -xzf dolibarr.tgz echo "=== Alte Installation sichern ===" rm -rf "$OLDDIR" mv "$INSTALLDIR" "$OLDDIR" echo "=== Neue Version installieren ===" mv "$TMPDIR/dolibarr-$VERSION" "$INSTALLDIR" echo "=== Konfiguration übernehmen ===" cp /etc/dolibarr/conf.php "$INSTALLDIR/htdocs/conf/" cp -r "$OLDDIR/htdocs/custom" "$INSTALLDIR/htdocs/" 2>/dev/null || true echo "=== Rechte setzen ===" chown -R www-data:www-data "$INSTALLDIR" chown -R www-data:www-data /var/lib/dolibarr echo "=== Apache Neustart ===" systemctl restart apache2 echo "=== install.lock setzen ===" touch /var/lib/dolibarr/documents/install.lock echo "" echo "================================" echo "Update vorbereitet" echo "" echo "Browser öffnen:" echo "/dolibarr/install" echo "" echo "DB Migration ausführen" echo "================================"