fix(backup): Improve backup/restore scripts, allow specifying backup directory (#1541)

This commit is contained in:
seals187
2026-02-19 13:13:12 +01:00
committed by GitHub
parent 414418130d
commit 7758312e05
2 changed files with 53 additions and 32 deletions
+25 -15
View File
@@ -1,31 +1,41 @@
#!/bin/bash
# Stop on Error
# Stop on error
set -e
# Configure those to match your PLANKA Docker container names
PLANKA_DOCKER_CONTAINER_POSTGRES="planka-postgres-1"
PLANKA_DOCKER_CONTAINER_PLANKA="planka-planka-1"
# Configure those to match your Docker container names
DOCKER_CONTAINER_POSTGRES="planka-postgres-1"
DOCKER_CONTAINER_PLANKA="planka-planka-1"
# Extract tgz archive
PLANKA_BACKUP_ARCHIVE_TGZ=$1
PLANKA_BACKUP_ARCHIVE=$(basename "$PLANKA_BACKUP_ARCHIVE_TGZ" .tgz)
echo -n "Extracting tarball $PLANKA_BACKUP_ARCHIVE_TGZ ... "
tar -xzf "$PLANKA_BACKUP_ARCHIVE_TGZ"
# Use provided archive
BACKUP_ARCHIVE="$1"
if [ -z "$BACKUP_ARCHIVE" ]; then
echo "Usage: $0 <backup-archive.tgz>"
exit 1
fi
BACKUP_DIR=$(dirname "$BACKUP_ARCHIVE")
BACKUP_TEMP="$BACKUP_DIR/$(basename "$BACKUP_ARCHIVE" .tgz)"
echo -n "Extracting tarball $BACKUP_ARCHIVE ... "
tar -C "$BACKUP_DIR" -xzf "$BACKUP_ARCHIVE"
echo "Success!"
echo
# Import Database
echo -n "Importing postgres database ... "
cat "$PLANKA_BACKUP_ARCHIVE/postgres.sql" | docker exec -i "$PLANKA_DOCKER_CONTAINER_POSTGRES" psql -U postgres
cat "$BACKUP_TEMP/postgres.sql" | docker exec -i "$DOCKER_CONTAINER_POSTGRES" psql -U postgres
echo "Success!"
echo
# Restore Docker Volume
echo -n "Importing data volume ... "
docker run --rm --volumes-from "$PLANKA_DOCKER_CONTAINER_PLANKA" -v "$(pwd)/$PLANKA_BACKUP_ARCHIVE:/backup" ubuntu cp -rf /backup/data/. /app/data
docker run --rm --user root --volumes-from "$DOCKER_CONTAINER_PLANKA" -v "$BACKUP_TEMP:/backup" node:22-alpine sh -c "cp -rf /backup/data/. /app/data && chown -R node:node /app/data/*"
echo "Success!"
echo
echo -n "Cleaning up temporary files and folders ... "
rm -r "$PLANKA_BACKUP_ARCHIVE"
echo -n "Cleaning up temporary files and directories ... "
rm -r "$BACKUP_TEMP"
echo "Success!"
echo
echo "Restore complete!"