#!/bin/bash set -euo pipefail VERSION="23.0.3" DATE=$(date +"%Y-%m-%d_%H-%M-%S") BACKUPDIR="/root/dolibarr-backup-$DATE" INSTALLDIR="/usr/share/dolibarr" OLDDIR="/usr/share/dolibarr-old" TMPDIR="/tmp/dolibarr-update" CONF="/etc/dolibarr/conf.php" 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..." if [ ! -d "$INSTALLDIR" ]; then echo "FEHLER: Dolibarr Verzeichnis nicht gefunden:" echo "$INSTALLDIR" exit 1 fi tar -czf "$BACKUPDIR/dolibarr-files.tar.gz" "$INSTALLDIR" echo "[4/10] Datenbankdaten lesen..." if [ ! -f "$CONF" ]; then echo "FEHLER: conf.php nicht gefunden:" echo "$CONF" exit 1 fi DB_NAME=$(grep dolibarr_main_db_name "$CONF" | cut -d"'" -f2) DB_USER=$(grep dolibarr_main_db_user "$CONF" | cut -d"'" -f2) DB_PASS=$(grep dolibarr_main_db_pass "$CONF" | cut -d"'" -f2) if [ -z "$DB_NAME" ] || [ -z "$DB_USER" ]; then echo "FEHLER: Datenbankdaten konnten nicht gelesen werden" exit 1 fi echo "DB Name: $DB_NAME" echo "DB User: $DB_USER" echo "[5/10] SQL Backup..." mariadb-dump -u"$DB_USER" -p"$DB_PASS" --databases "$DB_NAME" > "$BACKUPDIR/dolibarr.sql" echo "[6/10] Neue Version herunterladen..." cd "$TMPDIR" wget https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/$VERSION/dolibarr-$VERSION.tgz/download -O dolibarr.tgz echo "[7/10] Entpacken..." tar -xzf dolibarr.tgz echo "[8/10] Alte Installation sichern..." rm -rf "$OLDDIR" mv "$INSTALLDIR" "$OLDDIR" mv "$TMPDIR/dolibarr-$VERSION" "$INSTALLDIR" echo "[9/10] Konfiguration kopieren..." mkdir -p "$INSTALLDIR/htdocs/conf" cp "$CONF" "$INSTALLDIR/htdocs/conf/" chown -R www-data:www-data "$INSTALLDIR" chown -R www-data:www-data /var/lib/dolibarr echo "[10/10] install.lock setzen..." mkdir -p /var/lib/dolibarr/documents 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 systemctl restart apache2 echo "" echo "=========================================" echo "Update vorbereitet" echo "=========================================" echo "" echo "Backup:" echo "$BACKUPDIR" echo "" echo "Danach im Browser öffnen:" echo "" echo "/dolibarr/install" echo "" echo "Datenbankmigration durchführen" echo ""