Files
christian 5f6d536401 feat: Backup-Skript mit 20 Tage Aufbewahrung + Restore
scripts/backup.sh:
- MySQL-Dump (utf8mb4, single-transaction, routines, triggers) -> gz
- Uploads-Volume per alpine-tar -> tar.gz
- Loescht Backups aelter als 20 Tage (find -mtime)
- Liest MYSQL_PASSWORD via grep aus .env (kein source -
  .env enthaelt MAIL_FROM mit <> die bash sonst als Redirect deutet)
- Konfigurierbar via env PROJECT_DIR/BACKUP_DIR/RETENTION_DAYS

scripts/restore.sh:
- Listet verfuegbare Backups bei Aufruf ohne Argument
- Modi: full (default), db-only, uploads-only
- Sicherheitsabfrage vor Ueberschreiben

Cron auf Server: taeglich 03:00 -> /var/log/pfandsystem-demo-backup.log
Backup-Ziel: /root/backups/pfandsystem-demo/
2026-05-27 06:48:59 +00:00
..