implemented automated SQLite and media backup system with rotation

This commit is contained in:
nvrl committed 2026-02-19 16:38:59 +01:00
1 parent e3947e933c
commit dc4b5e4512
3 files changed
+123

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
# This script creates a full snapshot of the database and user media.
# Best run as a daily cron job.
ROOT_DIR=$(git rev-parse --show-toplevel)
cd "$ROOT_DIR"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="full_snapshot_$TIMESTAMP"
TEMP_DIR="backend/backups/$BACKUP_NAME"
FINAL_DEST="backend/backups"
echo "========================================"
echo " Starting Full Project Backup... "
echo "========================================"
mkdir -p "$TEMP_DIR"
# 1. Run the database backup command
echo "Backing up database..."
docker exec holy-backend python manage.py backup_db --output "/app/backups/$BACKUP_NAME/db.sqlite3"
# 2. Copy the media folder
echo "Backing up media..."
cp -r backend/media "$TEMP_DIR/media"
# 3. Create compressed archive
echo "Compressing..."
tar -czf "$FINAL_DEST/$BACKUP_NAME.tar.gz" -C "backend/backups" "$BACKUP_NAME"
# 4. Cleanup temp folder
rm -rf "$TEMP_DIR"
echo ""
echo "✅ Backup complete: $FINAL_DEST/$BACKUP_NAME.tar.gz"
echo "========================================"