-
-
Save sasajib/8a62769732a1b5b68e4f3509927ced22 to your computer and use it in GitHub Desktop.
Backup and Restore Appwrite, the lazy way π
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
| # Make sure to stop Appwrite before this backup, | |
| # and make sure you have enough space on the machine. | |
| docker run --rm \ | |
| -v appwrite_appwrite-mariadb:/backup/appwrite-mariadb \ | |
| -v appwrite_appwrite-redis:/backup/appwrite-redis \ | |
| -v appwrite_appwrite-cache:/backup/appwrite-cache \ | |
| -v appwrite_appwrite-uploads:/backup/appwrite-uploads \ | |
| -v appwrite_appwrite-certificates:/backup/appwrite-certificates \ | |
| -v appwrite_appwrite-functions:/backup/appwrite-functions \ | |
| -v appwrite_appwrite-influxdb:/backup/appwrite-influxdb \ | |
| -v appwrite_appwrite-config:/backup/appwrite-config \ | |
| -v appwrite_appwrite-builds:/backup/appwrite-builds \ | |
| -v $(pwd)/.env:/backup/appwrite/.env \ | |
| -v $(pwd)/docker-compose.yml:/backup/appwrite/docker-compose.yml \ | |
| -v $(pwd)/backups:/archive \ | |
| --env BACKUP_FILENAME="appwrite-backup-%Y-%m-%dT%H-%M-%S.tar.gz" \ | |
| --entrypoint backup \ | |
| offen/docker-volume-backup:latest |
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
| # Makre sure the Appwrite did NOT run on this server previously, | |
| # and make sure to stop it before this restore. | |
| # If appwrite ran here already, make sure to | |
| # stop Appwrite with 'docker-compose down -v'. | |
| # Before running, be in any directory, | |
| # but make sure 'backup.tar.gz' file with your backup is in there. | |
| # Backup script puts date in the file name, make sure to | |
| # rename file to exactly 'backup.tar.gz'. | |
| # After restore, you can enter appwite folder 'cd appwrite' | |
| # and start Appwrite with 'docker-compose up -d'. | |
| # Untar backup | |
| tar -C /tmp -xvf appwrite-backup.tar.gz | |
| # Restore mariadb | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-mariadb:/backup_restore/appwrite-mariadb alpine | |
| docker cp /tmp/appwrite-backup/appwrite-mariadb temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore redis | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-redis:/backup_restore/appwrite-redis alpine | |
| docker cp /tmp/appwrite-backup/appwrite-redis temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore cache | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-cache:/backup_restore/appwrite-cache alpine | |
| docker cp /tmp/appwrite-backup/appwrite-cache temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore uploads | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-uploads:/backup_restore/appwrite-uploads alpine | |
| docker cp /tmp/appwrite-backup/appwrite-uploads temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore certificates | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-certificates:/backup_restore/appwrite-certificates alpine | |
| docker cp /tmp/appwrite-backup/appwrite-certificates temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore functions | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-functions:/backup_restore/appwrite-functions alpine | |
| docker cp /tmp/appwrite-backup/appwrite-functions temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore influxdb | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-influxdb:/backup_restore/appwrite-influxdb alpine | |
| docker cp /tmp/appwrite-backup/appwrite-influxdb temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore config | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-config:/backup_restore/appwrite-config alpine | |
| docker cp /tmp/appwrite-backup/appwrite-config temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore builds | |
| docker run -d --name temp_restore_container -v appwrite_appwrite-builds:/backup_restore/appwrite-builds alpine | |
| docker cp /tmp/appwrite-backup/appwrite-builds temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Restore env | |
| mkdir -p appwrite | |
| docker run -d --name temp_restore_container -v $(pwd)/appwrite:/backup_restore/appwrite alpine | |
| docker cp /tmp/appwrite-backup/appwrite temp_restore_container:/backup_restore | |
| docker stop temp_restore_container | |
| docker rm temp_restore_container | |
| # Remove temporary files | |
| rm -rf /tmp/appwrite-backup |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment