docs: add backup setup guide and backup script for Zora
Introduced a detailed guide on configuring automated backups for the Zora server, covering scheduling, manual execution, and restoration processes. Added `backup.sh` script to streamline database and configuration backups with retention and rotation.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# ==========================================
|
||||
# Meldestelle Backup Script
|
||||
# Sichert Datenbanken und Konfigurationen
|
||||
# ==========================================
|
||||
|
||||
# Konfiguration
|
||||
BACKUP_DIR="/home/grandmo/backups/meldestelle"
|
||||
DATE=$(date +%Y-%m-%d_%H-%M-%S)
|
||||
RETENTION_DAYS=7
|
||||
PROJECT_NAME="meldestelle"
|
||||
|
||||
# Container Namen (müssen mit docker-compose übereinstimmen)
|
||||
DB_CONTAINER="${PROJECT_NAME}-postgres"
|
||||
DB_USER="meldestelle" # Oder aus .env lesen
|
||||
|
||||
# Verzeichnisse erstellen
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
echo "🚀 Starte Backup: $DATE"
|
||||
|
||||
# 1. PostgreSQL Dump
|
||||
echo " -> Erstelle Datenbank-Dump..."
|
||||
if docker exec "$DB_CONTAINER" pg_dumpall -U "$DB_USER" > "$BACKUP_DIR/db_dump_$DATE.sql"; then
|
||||
echo " ✅ DB Dump erfolgreich."
|
||||
gzip "$BACKUP_DIR/db_dump_$DATE.sql"
|
||||
else
|
||||
echo " ❌ FEHLER beim DB Dump!"
|
||||
# Optional: Mail senden oder Exit Code setzen
|
||||
fi
|
||||
|
||||
# 2. Konfigurations-Dateien sichern (.env ist kritisch!)
|
||||
echo " -> Sichere Konfigurationen..."
|
||||
tar -czf "$BACKUP_DIR/config_$DATE.tar.gz" .env docker-compose.yaml dc-*.yaml config/
|
||||
|
||||
# 3. Alte Backups löschen (Rotation)
|
||||
echo " -> Lösche Backups älter als $RETENTION_DAYS Tage..."
|
||||
find "$BACKUP_DIR" -name "db_dump_*.sql.gz" -mtime +$RETENTION_DAYS -delete
|
||||
find "$BACKUP_DIR" -name "config_*.tar.gz" -mtime +$RETENTION_DAYS -delete
|
||||
|
||||
echo "✅ Backup abgeschlossen: $BACKUP_DIR"
|
||||
ls -lh "$BACKUP_DIR" | grep "$DATE"
|
||||
Reference in New Issue
Block a user