Skip to content

Instantly share code, notes, and snippets.

@sasajib
Forked from Meldiron/backup.sh
Created August 15, 2024 13:42
Show Gist options
  • Save sasajib/8a62769732a1b5b68e4f3509927ced22 to your computer and use it in GitHub Desktop.
Save sasajib/8a62769732a1b5b68e4f3509927ced22 to your computer and use it in GitHub Desktop.

Revisions

  1. @Meldiron Meldiron revised this gist Sep 15, 2022. 2 changed files with 2 additions and 0 deletions.
    1 change: 1 addition & 0 deletions backup.sh
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,7 @@ docker run --rm \
    -v appwrite_appwrite-influxdb:/backup/appwrite-influxdb \
    -v appwrite_appwrite-config:/backup/appwrite-config \
    -v appwrite_appwrite-builds:/backup/appwrite-builds \
    -v appwrite_appwrite-executor:/backup/appwrite-executor \
    -v $(pwd)/.env:/backup/appwrite/.env \
    -v $(pwd)/docker-compose.yml:/backup/appwrite/docker-compose.yml \
    -v $(pwd)/backups:/archive \
    1 change: 1 addition & 0 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -33,6 +33,7 @@ docker run -d --name temp_restore_container \
    -v appwrite_appwrite-influxdb:/backup_restore/appwrite-influxdb \
    -v appwrite_appwrite-config:/backup_restore/appwrite-config \
    -v appwrite_appwrite-builds:/backup_restore/appwrite-builds \
    -v appwrite_appwrite-executor:/backup_restore/appwrite-executor \
    -v $(pwd)/appwrite:/backup_restore/appwrite \
    alpine tail -f /dev/null

  2. @Meldiron Meldiron revised this gist Mar 24, 2022. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions backup.sh
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,9 @@
    # Make sure to stop Appwrite before this backup,
    # and make sure you have enough space on the machine.

    # After backing up, make sure there is a file in 'backups/backup-___.tar.gz'.
    # Also please check size of this file, it should be at least 5kb, even for small instances.

    docker run --rm \
    -v appwrite_appwrite-mariadb:/backup/appwrite-mariadb \
    -v appwrite_appwrite-redis:/backup/appwrite-redis \
    @@ -17,3 +20,4 @@ docker run --rm \
    --env BACKUP_FILENAME="backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --entrypoint backup \
    offen/docker-volume-backup:latest

  3. @Meldiron Meldiron revised this gist Mar 24, 2022. 2 changed files with 4 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions CONTRIBUTORS.md
    Original file line number Diff line number Diff line change
    @@ -1,2 +0,0 @@
    - [Matej Bačo (Meldiron)](https://github.com/meldiron)
    - [AidsMcGhee](https://github.com/JakeAi)
    4 changes: 4 additions & 0 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,7 @@
    # Contributors:
    # - Matej Bačo (Meldiron): https://github.com/meldiron
    # - AidsMcGhee: https://github.com/JakeAi

    # Make 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
  4. @Meldiron Meldiron revised this gist Mar 22, 2022. 3 changed files with 24 additions and 62 deletions.
    2 changes: 1 addition & 1 deletion CONTRIBUTORS.md
    Original file line number Diff line number Diff line change
    @@ -1,2 +1,2 @@
    - [Matej Bačo](https://github.com/meldiron)
    - [Matej Bačo (Meldiron)](https://github.com/meldiron)
    - [AidsMcGhee](https://github.com/JakeAi)
    2 changes: 1 addition & 1 deletion backup.sh
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,6 @@ docker run --rm \
    -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" \
    --env BACKUP_FILENAME="backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --entrypoint backup \
    offen/docker-volume-backup:latest
    82 changes: 22 additions & 60 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -1,79 +1,41 @@
    # Makre sure the Appwrite did NOT run on this server previously,
    # Make 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'.
    # stop Appwrite with 'docker-compose down -v', and ideally
    # also remove appwrite folder.

    # Before running, be in any directory,
    # but make sure 'backup.tar.gz' file with your backup is in there.
    # Whichever directory you are in, this script will create 'appwrite'
    # folder in here, with a configuration from backup.

    # 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
    tar -C /tmp -xvf backup.tar.gz

    # 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 volumes and configuration
    docker run -d --name temp_restore_container \
    -v appwrite_appwrite-mariadb:/backup_restore/appwrite-mariadb \
    -v appwrite_appwrite-redis:/backup_restore/appwrite-redis \
    -v appwrite_appwrite-cache:/backup_restore/appwrite-cache \
    -v appwrite_appwrite-uploads:/backup_restore/appwrite-uploads \
    -v appwrite_appwrite-certificates:/backup_restore/appwrite-certificates \
    -v appwrite_appwrite-functions:/backup_restore/appwrite-functions \
    -v appwrite_appwrite-influxdb:/backup_restore/appwrite-influxdb \
    -v appwrite_appwrite-config:/backup_restore/appwrite-config \
    -v appwrite_appwrite-builds:/backup_restore/appwrite-builds \
    -v $(pwd)/appwrite:/backup_restore/appwrite \
    alpine tail -f /dev/null

    # 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
    docker cp /tmp/backup/. temp_restore_container:/backup_restore

    # 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
    rm -rf /tmp/backup
  5. @Meldiron Meldiron revised this gist Mar 22, 2022. 2 changed files with 35 additions and 16 deletions.
    5 changes: 3 additions & 2 deletions backup.sh
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,5 @@
    # Make sure to stop Appwrite before this backup, and make sure you have enough space on the machine
    # 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 \
    @@ -13,6 +14,6 @@ docker run --rm \
    -v $(pwd)/.env:/backup/appwrite/.env \
    -v $(pwd)/docker-compose.yml:/backup/appwrite/docker-compose.yml \
    -v $(pwd)/backups:/archive \
    --env BACKUP_FILENAME="backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --env BACKUP_FILENAME="appwrite-backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --entrypoint backup \
    offen/docker-volume-backup:latest
    46 changes: 32 additions & 14 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -1,61 +1,79 @@
    # Makre sure the Appwrite did NOT run on this server, 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
    # 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'.

    # After restore, make sure to also copy 'docker-compose.yml' and '.env' from the previous server.
    # 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 backup.tar.gz
    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/backup/appwrite-mariadb temp_restore_container:/backup_restore
    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/backup/appwrite-redis temp_restore_container:/backup_restore
    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/backup/appwrite-cache temp_restore_container:/backup_restore
    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/backup/appwrite-uploads temp_restore_container:/backup_restore
    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/backup/appwrite-certificates temp_restore_container:/backup_restore
    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/backup/appwrite-functions temp_restore_container:/backup_restore
    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/backup/appwrite-influxdb temp_restore_container:/backup_restore
    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/backup/appwrite-config temp_restore_container:/backup_restore
    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/backup/appwrite-builds temp_restore_container:/backup_restore
    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
    docker rm temp_restore_container

    # Remove temporary files
    rm -rf /tmp/appwrite-backup
  6. @Meldiron Meldiron revised this gist Mar 22, 2022. 2 changed files with 4 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions CONTRIBUTORS.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    - [Matej Bačo](https://github.com/meldiron)
    - [AidsMcGhee](https://github.com/JakeAi)
    2 changes: 2 additions & 0 deletions backup.sh
    Original file line number Diff line number Diff line change
    @@ -10,6 +10,8 @@ docker run --rm \
    -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="backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --entrypoint backup \
  7. @Meldiron Meldiron revised this gist Mar 21, 2022. 2 changed files with 7 additions and 0 deletions.
    1 change: 1 addition & 0 deletions backup.sh
    Original file line number Diff line number Diff line change
    @@ -9,6 +9,7 @@ docker run --rm \
    -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)/backups:/archive \
    --env BACKUP_FILENAME="backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --entrypoint backup \
    6 changes: 6 additions & 0 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -52,4 +52,10 @@ docker rm temp_restore_container
    docker run -d --name temp_restore_container -v appwrite_appwrite-config:/backup_restore/appwrite-config alpine
    docker cp /tmp/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/backup/appwrite-builds temp_restore_container:/backup_restore
    docker stop temp_restore_container
    docker rm temp_restore_container
  8. @Meldiron Meldiron revised this gist Mar 6, 2022. 1 changed file with 9 additions and 9 deletions.
    18 changes: 9 additions & 9 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -7,49 +7,49 @@
    tar -C /tmp -xvf backup.tar.gz

    # Restore mariadb
    docker run -d --name temp_restore_container -v appwrite_appwrite-mariadb:/backup_restore alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-mariadb:/backup_restore/appwrite-mariadb alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-redis:/backup_restore/appwrite-redis alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-cache:/backup_restore/appwrite-cache alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-uploads:/backup_restore/appwrite-uploads alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-certificates:/backup_restore/appwrite-certificates alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-functions:/backup_restore/appwrite-functions alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-influxdb:/backup_restore/appwrite-influxdb alpine
    docker cp /tmp/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 alpine
    docker run -d --name temp_restore_container -v appwrite_appwrite-config:/backup_restore/appwrite-config alpine
    docker cp /tmp/backup/appwrite-config temp_restore_container:/backup_restore
    docker stop temp_restore_container
    docker rm temp_restore_container
    docker rm temp_restore_container
  9. @Meldiron Meldiron revised this gist Mar 6, 2022. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion restore.sh
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,8 @@
    # Makre sure the Appwrite was already started on this server once, and make sure to stop it before this restore
    # Makre sure the Appwrite did NOT run on this server, 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

    # After restore, make sure to also copy 'docker-compose.yml' and '.env' from the previous server.

    # Untar backup
    tar -C /tmp -xvf backup.tar.gz

  10. @Meldiron Meldiron created this gist Mar 6, 2022.
    15 changes: 15 additions & 0 deletions backup.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    # 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 $(pwd)/backups:/archive \
    --env BACKUP_FILENAME="backup-%Y-%m-%dT%H-%M-%S.tar.gz" \
    --entrypoint backup \
    offen/docker-volume-backup:latest
    53 changes: 53 additions & 0 deletions restore.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,53 @@
    # Makre sure the Appwrite was already started on this server once, and make sure to stop it before this restore
    # Before running, be in any directory, but make sure `backup.tar.gz` file with your backup is in there

    # Untar backup
    tar -C /tmp -xvf backup.tar.gz

    # Restore mariadb
    docker run -d --name temp_restore_container -v appwrite_appwrite-mariadb:/backup_restore alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/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 alpine
    docker cp /tmp/backup/appwrite-config temp_restore_container:/backup_restore
    docker stop temp_restore_container
    docker rm temp_restore_container