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¶
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¶
Django-loaddata-Wiederherstellung¶
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:
- Separate Docker-Compose-Instanz einrichten
- Backup wiederherstellen
- Datenintegrität überprüfen
- Überprüfen, ob Mediendateien zugänglich sind
Verwandte Dokumentation¶
- Wartung - Systemwartung
- Aktualisierung - Aktualisierungsverfahren