🛡️ Cool_DB-Catta Disaster Recovery

Stand: 01.05.2026 · Server: 121-CoolDB-Catta · Debian 13 Trixie

⚠️ Bevor du anfängst: Diese Anleitung setzt voraus, dass du Zugriff auf das Recovery-Bundle hast (USB-Stick / Mac), das diese Dateien enthält: Ohne diese Dateien kein Zugriff aufs Backup möglich!
đź“‹ Inhalt
  1. System-Inventur (Original-Setup)
  2. 1. Vorbereitung — neue Debian-VM
  3. 2. Pakete installieren
  4. 3. Geheimnisse aus Bundle einspielen
  5. 4. Restic-Backup wiederherstellen
  6. 5. Datenbank wiederherstellen
  7. 6. Apache + Konfiguration aktivieren
  8. 7. Cron-Jobs aktivieren
  9. 8. Funktionstests
  10. Troubleshooting

System-Inventur (Original)

KomponenteVersionNotiz
OSDebian 13 (Trixie)fĂĽr 1:1 Recovery gleiche Version nutzen
Apache2.4.66Module: rewrite, ssl, php
PHP8.4.169 Module installiert
MariaDB11.8.6max_allowed_packet=128M
Restic0.18.0via apt + rclone-Helfer
rcloneinstalliert in /usr/bin/rcloneBackend: pcloud
VM-IP192.168.178.121FritzBox-LAN, Subnetz /24
Hostname121-CoolDB-Cattaim Restic mit dieser Host-Tag
DB-Größe~61 MBcooldb / cooluser

Restic-Repo

rclone:pcloud:Backups/CoolDB-Catta-Restic

Geöffnete Ports (UFW)

PortQuelleZweck
80/tcpĂĽberallHTTP
443ĂĽberallHTTPS
22/tcp192.168.178.0/24 (LAN)SSH (nur LAN!)

1. Vorbereitung — neue Debian-VM

1Frische Debian 13 (Trixie)-VM aufsetzen

In Proxmox neue VM erstellen, Debian-13-ISO booten, Standard-Installation. Hostname: 121-CoolDB-Catta (wichtig — Restic merkt sich den Host-Tag).

2IP-Adresse setzen

Statische IP 192.168.178.121, Gateway 192.168.178.1 (FritzBox), DNS 192.168.178.1

3System aktualisieren

sudo apt update && sudo apt upgrade -y

2. Pakete installieren

1Apache + PHP + MariaDB

sudo apt install -y apache2 mariadb-server \
  php8.4 php8.4-cli php8.4-common php8.4-curl php8.4-gd \
  php8.4-mbstring php8.4-mysql php8.4-opcache php8.4-readline \
  php8.4-xml php8.4-zip libapache2-mod-php8.4 \
  php-common php-curl php-gd php-mbstring php-mysql php-xml php-zip

2Restic + rclone + msmtp + curl

sudo apt install -y restic rclone msmtp msmtp-mta curl ufw

3Apache-Module aktivieren

sudo a2enmod rewrite ssl php8.4
sudo systemctl restart apache2

4UFW-Firewall einrichten

sudo ufw allow 80/tcp
sudo ufw allow 443
sudo ufw allow from 192.168.178.0/24 to any port 22 proto tcp
sudo ufw enable
sudo ufw status verbose

3. Geheimnisse aus Recovery-Bundle einspielen

USB-Stick / Mac einstecken und das Recovery-Bundle bereitlegen. Alle Dateien sind im Bundle vorhanden.

1rclone-Konfiguration

sudo mkdir -p /root/.config/rclone
sudo cp rclone.conf /root/.config/rclone/rclone.conf
sudo chmod 600 /root/.config/rclone/rclone.conf
sudo chown root:root /root/.config/rclone/rclone.conf

# Testen
sudo rclone lsd pcloud:Backups

Erwartung: CoolDB-Catta-Restic erscheint in der Liste.

2Restic-Passwort

sudo cp .restic-password /root/.restic-password
sudo chmod 600 /root/.restic-password

3Backup-Skripte

sudo cp cooldb-backup.sh /usr/local/bin/
sudo cp cooldb-bak-rotate.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/cooldb-*.sh

4msmtp-Mail-Config

sudo cp msmtprc /etc/msmtprc
sudo chmod 640 /etc/msmtprc
sudo chown root:msmtp /etc/msmtprc 2>/dev/null || sudo chown root:root /etc/msmtprc

# Testen
echo "Recovery-Test" | sudo msmtp DEINEMAIL@example.com

4. Restic-Backup wiederherstellen

1Snapshot-Liste prĂĽfen

export RESTIC_PASSWORD_FILE=/root/.restic-password
export RESTIC_REPOSITORY="rclone:pcloud:Backups/CoolDB-Catta-Restic"

sudo -E restic snapshots

Erwartung: Liste mit Snapshots — der neueste oben.

2Neuesten Snapshot wiederherstellen

sudo -E restic restore latest --target /

Stellt wieder her:

5. Datenbank wiederherstellen

1MariaDB-Konfig anpassen (wegen großer Anhänge)

sudo systemctl restart mariadb
# Pruefen ob die wiederhergestellte 50-server.cnf greift:
sudo mysql -e "SHOW VARIABLES LIKE 'max_allowed_packet';"

Erwartung: 134217728 (= 128 MB)

2Datenbank + User anlegen

sudo mysql <<'SQL'
CREATE DATABASE cooldb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cooluser'@'localhost' IDENTIFIED BY 'Nurdu23212';
GRANT ALL PRIVILEGES ON cooldb.* TO 'cooluser'@'localhost';
FLUSH PRIVILEGES;
SQL
Passwort: Steht im cooldb-backup.sh als DB_PASS. Im Notfall dort nachschauen.

3Neuesten DB-Dump einspielen

# Neuestes Dump-File finden
sudo ls -lt /var/backups/cooldb/*.sql | head -3

# Einspielen (Pfad anpassen)
sudo mysql -u cooluser -pNurdu23212 cooldb < /var/backups/cooldb/cooldb-NEUESTES-FILE.sql

# Verifikation
sudo mysql -u cooluser -pNurdu23212 cooldb -e "SHOW TABLES;"

Erwartung: vault_categories, vault_items, vault_attachments, vault_todos, vault_todo_subtasks, vault_todo_lists, vault_tags, etc.

6. Apache + Konfiguration aktivieren

1vhost aktivieren

sudo a2ensite cool.conf
sudo a2dissite 000-default.conf 2>/dev/null
sudo apache2ctl configtest
sudo systemctl reload apache2

2Permissions setzen

sudo chown -R www-data:www-data /var/www/cool
sudo chmod -R 755 /var/www/cool

7. Cron-Jobs aktivieren

1Cron-Dateien sind nach Restore in /etc/cron.d/

ls /etc/cron.d/cooldb-*

Erwartung: 3 Dateien — backup, reminder, bak-rotate

2Cron-Service neu laden

sudo systemctl reload cron

3Reminder testen (läuft jede Minute)

sudo tail -f /var/log/syslog | grep CRON
# Strg+C zum Abbrechen

8. Funktionstests

1Browser-Test

Im Browser http://192.168.178.121 oder https://... öffnen → Login-Maske erscheint? Wenn ja: einloggen.

2Daten prĂĽfen

Cool_DB-Tab → Einträge sichtbar? · ToDo-Tab → Listen + ToDos sichtbar? · Anhänge → klicken auf Vorschau/Download?

3Backup-Test

sudo /usr/local/bin/cooldb-backup.sh

Erwartung: "âś“ Backup abgeschlossen"

Troubleshooting

ProblemLösung
rclone-Test schlägt fehlpCloud-Token in rclone.conf abgelaufen — neu generieren mit rclone config reconnect pcloud:
Restic kann Repo nicht öffnenPasswort in .restic-password falsch — vergleiche Bytes mit Bundle-Datei
Apache zeigt 500sudo tail -30 /var/log/apache2/error.log — meist PHP-Modul fehlt
DB-Login schlägt fehlPasswort in cooldb-backup.sh nachschauen (DB_PASS=...)
Anhänge laden nichtmax_allowed_packet in MariaDB prüfen — muss 128M sein
Mail wird nicht versendetmsmtp-Test: echo "test" | msmtp deine@mail
Reminder läuft nichtcat /etc/cron.d/cooldb-reminder + systemctl reload cron
âś… Bei erfolgreicher Recovery

Alles wieder online — Cool_DB läuft. Backup wird ab morgen 03:00 automatisch wieder ausgeführt. Restic-Snapshots in pCloud bleiben erhalten.


Erstellt am 01.05.2026 — bei Problemen Logs prüfen + jeden Schritt einzeln durchgehen