Files
penpot-deployment/scripts/backup.sh
2026-03-17 19:33:46 +08:00

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! ==="