Created
July 21, 2023 16:17
-
-
Save serafdev/aac1d4b8083d75bcfd7d49eeb2c86318 to your computer and use it in GitHub Desktop.
Script to backup Ghost blog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/usr/bin/sh | |
WORKDIR=/home/$USER/ghost | |
cd $WORKDIR | |
_date=$(date --iso-8601) | |
_backup_file_root=./backups/$_date | |
_backup_file_content=$_backup_file_root/content | |
mkdir -p $_backup_file_content | |
echo Backing up content into $_backup_file_content/{images, files, media} | |
docker compose cp ghost:/var/lib/ghost/content/images $_backup_file_content/images | |
docker compose cp ghost:/var/lib/ghost/content/files $_backup_file_content/files | |
docker compose cp ghost:/var/lib/ghost/content/media $_backup_file_content/media | |
_db_dump_fp="/db-dump-$_date.sql" | |
echo Backing up database into $_backup_file_root$_db_dump_fp | |
docker compose exec db \ | |
sh -c "mysqldump -u root -p\$MYSQL_ROOT_PASSWORD ghost --result-file=$_db_dump_fp" | |
docker compose cp db:$_db_dump_fp $_backup_file_root/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I have a second isolated deployment (
example-app.qa.seraf.dev
) where I deploy daily the backups to make sure everything works well, core command:This will wipe what's deployed and replace the sql database with the newest backup