30 lines
823 B
Bash
30 lines
823 B
Bash
#!/bin/bash
|
|
|
|
# Exit immediately if a command exits with a non-zero status
|
|
set -e
|
|
|
|
BACKUP_DIR="./backups"
|
|
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
|
DB_BACKUP_FILE="${BACKUP_DIR}/penpot_db_${TIMESTAMP}.sql"
|
|
ASSETS_BACKUP_FILE="${BACKUP_DIR}/penpot_assets_${TIMESTAMP}.tar.gz"
|
|
|
|
echo "=== Starting Penpot Backup ($TIMESTAMP) ==="
|
|
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
# Backup PostgreSQL Database
|
|
echo "Backing up Database..."
|
|
docker compose exec -T penpot-postgres pg_dump -U penpot -d penpot -c > "$DB_BACKUP_FILE"
|
|
echo "Database backed up to $DB_BACKUP_FILE"
|
|
|
|
# Backup Assets Volume
|
|
echo "Backing up Assets..."
|
|
docker compose run --rm \
|
|
-v $(pwd)/backups:/backups \
|
|
penpot-backend \
|
|
tar czvf /backups/penpot_assets_${TIMESTAMP}.tar.gz -C /opt/data/assets .
|
|
|
|
echo "Assets backed up to $ASSETS_BACKUP_FILE"
|
|
|
|
echo "=== Backup Complete! ==="
|