Zum Inhalt

Backup & Wiederherstellung

Anleitung zum Sichern und Wiederherstellen Ihrer Bifolk-Installation.

Zielgruppe: Systemadministratoren


Was zu sichern ist

Komponente Speicherort Methode
Datenbank (SQLite) /bifolk/db/db.sqlite3 Dateikopie
Datenbank (PostgreSQL) PostgreSQL-Server pg_dump
Mediendateien /bifolk/media/ Dateikopie
Konfiguration .env, secrets/ Dateikopie
Docker-Volumes Benannte Volumes docker volume-Befehle

SQLite-Backup

Einfache Dateikopie

# Anwendung stoppen (empfohlen für Konsistenz)
docker compose stop bifolk-app

# Datenbankdatei kopieren
docker cp bifolk-app:/bifolk/db/db.sqlite3 ./backup/db.sqlite3

# Neu starten
docker compose start bifolk-app

Mit Django dumpdata

# Als JSON exportieren (Anwendung läuft)
docker compose exec bifolk-app python manage.py dumpdata \
    --exclude auth.permission \
    --exclude contenttypes \
    --indent 2 > backup/data.json

PostgreSQL-Backup

# Mit pg_dump
docker compose exec bifolk-db pg_dump -U bifolk bifolk > backup/bifolk.sql

# Komprimiert
docker compose exec bifolk-db pg_dump -U bifolk bifolk | gzip > backup/bifolk.sql.gz

Mediendateien-Backup

# Mediendateien aus dem Container kopieren
docker cp bifolk-app:/bifolk/media/ ./backup/media/

Vollständiges Backup-Skript

#!/bin/bash
# Vollständiges Bifolk-Backup
BACKUP_DIR="./backups/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"

# Datenbank (SQLite)
docker cp bifolk-app:/bifolk/db/db.sqlite3 "$BACKUP_DIR/db.sqlite3"

# Mediendateien
docker cp bifolk-app:/bifolk/media/ "$BACKUP_DIR/media/"

# Konfiguration
cp .env "$BACKUP_DIR/.env"
cp -r ../../secrets/ "$BACKUP_DIR/secrets/"

echo "Backup abgeschlossen: $BACKUP_DIR"

Aus Backup wiederherstellen

SQLite-Wiederherstellung

# Anwendung stoppen
docker compose stop bifolk-app

# Datenbank wiederherstellen
docker cp ./backup/db.sqlite3 bifolk-app:/bifolk/db/db.sqlite3

# Neu starten
docker compose start bifolk-app

PostgreSQL-Wiederherstellung

# Datenbank löschen und neu erstellen
docker compose exec bifolk-db psql -U bifolk -c "DROP DATABASE bifolk;"
docker compose exec bifolk-db psql -U bifolk -c "CREATE DATABASE bifolk;"

# Wiederherstellen
cat backup/bifolk.sql | docker compose exec -T bifolk-db psql -U bifolk bifolk

Mediendateien-Wiederherstellung

docker cp ./backup/media/ bifolk-app:/bifolk/media/

Django-loaddata-Wiederherstellung

docker compose exec bifolk-app python manage.py loaddata backup/data.json

Backup-Zeitplan-Empfehlungen

Häufigkeit Was zu sichern ist
Täglich Datenbank
Wöchentlich Datenbank + Mediendateien
Vor Upgrades Vollständiges Backup (Datenbank + Medien + Konfiguration)

Backups testen

Testen Sie Ihre Backups regelmäßig durch Wiederherstellung in einer Testumgebung:

  1. Separate Docker-Compose-Instanz einrichten
  2. Backup wiederherstellen
  3. Datenintegrität überprüfen
  4. Überprüfen, ob Mediendateien zugänglich sind

Verwandte Dokumentation