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