#!/bin/bash set -euo pipefail # ========================================== # Dolibarr Quick Update Script # ========================================== # Root-Rechte automatisch anfordern if [ "$EUID" -ne 0 ]; then echo "Root-Rechte erforderlich – starte mit sudo..." exec sudo bash "$0" "$@" fi 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" clear echo "=========================================" echo " Dolibarr Quick Update" echo "=========================================" echo "" echo "[1/10] Arbeitsverzeichnis vorbereiten..." rm -rf "$TMPDIR" mkdir -p "$TMPDIR" echo "[2/10] Backup-Verzeichnis erstellen..." mkdir -p "$BACKUPDIR" echo "[3/10] Dateien sichern..." tar -czf "$BACKUPDIR/dolibarr-files.tar.gz" "$INSTALLDIR" echo "[4/10] Datenbankdaten lesen..." 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 "[5/10] SQL Backup..." mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" \ > "$BACKUPDIR/dolibarr.sql" echo "[6/10] install.lock entfernen..." rm -f /var/lib/dolibarr/documents/install.lock echo "[7/10] Dolibarr $VERSION herunterladen..." cd "$TMPDIR" wget "https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/$VERSION/dolibarr-$VERSION.tgz/download" -O dolibarr.tgz echo "[8/10] Entpacken..." tar -xzf dolibarr.tgz echo "[9/10] Installation austauschen..." rm -rf "$OLDDIR" mv "$INSTALLDIR" "$OLDDIR" mv "$TMPDIR/dolibarr-$VERSION" "$INSTALLDIR" echo "[10/10] Konfiguration übernehmen..." cp /etc/dolibarr/conf.php "$INSTALLDIR/htdocs/conf/" if [ -d "$OLDDIR/htdocs/custom" ]; then cp -a "$OLDDIR/htdocs/custom" "$INSTALLDIR/htdocs/" fi echo "Setze Berechtigungen..." chown -R www-data:www-data "$INSTALLDIR" chown -R www-data:www-data /var/lib/dolibarr echo "Apache neu starten..." systemctl restart apache2 echo "install.lock wieder erstellen..." touch /var/lib/dolibarr/documents/install.lock chown www-data:www-data /var/lib/dolibarr/documents/install.lock chmod 644 /var/lib/dolibarr/documents/install.lock echo "" echo "=========================================" echo "Update vorbereitet" echo "" echo "Backups gespeichert unter:" echo "$BACKUPDIR" echo "" echo "Jetzt im Browser öffnen:" echo "/dolibarr/install" echo "" echo "Danach Datenbankmigration durchführen" echo "========================================="