diff --git a/bin/backup.sh b/bin/backup.sh new file mode 100755 index 00000000..547f865e --- /dev/null +++ b/bin/backup.sh @@ -0,0 +1,25 @@ +#!/bin/bash +mkdir -p backup + +backup_path="$(pwd)/backup/" + +function backup_volume { + volume_name=$1 + backup_destination=$2 + + echo "Backing up $volume_name to $backup_destination" + docker run --rm -v $volume_name:/data -v $backup_destination:/backup quay.io/centos/centos:stream8 tar -zcvf /backup/$volume_name.tar /data +} + +echo "Stopping containers" +docker-compose stop + +echo "Backing up volumes" +volumes=($(docker volume ls -f name=kolab | awk '{if (NR > 1) print $2}')) +for v in "${volumes[@]}" +do + backup_volume $v $backup_path +done + +echo "Restarting containers" +docker-compose start diff --git a/bin/restore.sh b/bin/restore.sh new file mode 100755 index 00000000..6ea76563 --- /dev/null +++ b/bin/restore.sh @@ -0,0 +1,29 @@ +#!/bin/bash +backup_path="$(pwd)/backup/" + +function restore_volume { + volume_name=$1 + backup_destination=$2 + + echo "Restoring $volume_name from $backup_destination" + docker run --rm -v $volume_name:/data -v $backup_destination:/backup quay.io/centos/centos:stream8 tar xvf /backup/$volume_name.tar -C /data --strip 1 +} + +echo "Stopping containers" +docker-compose stop + +# We currently expect the volumes to exist. +# We could alternatively create volumes form existing tar files +# for f in backup/*.tar; do +# echo "$(basename $f .tar)" ; +# done + +echo "Restoring volumes" +volumes=($(docker volume ls -f name=kolab | awk '{if (NR > 1) print $2}')) +for v in "${volumes[@]}" +do + restore_volume $v $backup_path +done +echo "Restarting containers" +docker-compose start + diff --git a/bin/update.sh b/bin/update.sh new file mode 100755 index 00000000..45a9ed3b --- /dev/null +++ b/bin/update.sh @@ -0,0 +1,5 @@ +#!/bin/bash +docker-compose down --remove-orphans +docker-compose build coturn kolab mariadb meet pdns proxy redis haproxy webapp +bin/regen-certs +docker-compose up -d coturn kolab mariadb meet pdns proxy redis haproxy webapp