diff --git a/stacks.sh b/stacks.sh new file mode 100644 index 0000000..77586c9 --- /dev/null +++ b/stacks.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +red="\033[1;31m" +greenbold="\033[1;32m" +green="\033[0;32m" +yellow="\033[0;33m" +bold="\033[1m" +#bold_under="\033[1;4m" +italic="\033[3m" +underline="\033[4m" +reset="\033[0m" + +dotenv () { + set -a + # shellcheck disable=SC1091 + [ -f "$HOME/.env" ] && . "$HOME/.env" || echo -e "${red}\nNo .env file found ! Archive won't be encrypted !${reset}" + set +a +} + +dotenv + +dir_docker="/volume1/docker" +dir_stacks="/volume1/docker/dockge/stacks" +dir_backup="/volume1/docker/_backup" +[ ! -d "$dir_backup" ] && mkdir "$dir_backup" + + +stacks=$(cd "$dir_stacks" && fd -g docker-compose.yml) +nb=0 + +while IFS= read -r line; do + + app=$(echo "${line}" | awk -F"/" '{print $1}') + folder="$dir_backup/$app" + [ ! -d "$folder" ] && mkdir "$folder" + cp "$line" "$folder" + ((nb++)) + +done <<< "$stacks" + +echo -e "$nb 'docker-compose.yml' files founds in DockGe !" + +env=$(cd "$dir_stacks" && fd -H -g .env) +nb=0 + +while IFS= read -r line; do + + app=$(echo "${line}" | awk -F"/" '{print $1}') + folder="$dir_backup/$app" + [ -d "$folder" ] && cp "$line" "$folder" + ((nb++)) + +done <<< "$env" + +echo -e "$nb '.env' files founds in DockGe !" + +echo -e "Archivage du dossier _backup..." + +if ! command -v gpg &> /dev/null; then + echo -e "${bold}gpg${reset} could not be found !\n" + echo -e "Archive won't be encrypted !\n" + echo -e "" + + tar -zcvf "$dir_docker/backup_Docker.tar.gz" "$dir_backup" >/dev/null 2>&1 +else + rm "$dir_docker/backup_Docker.tar".gpg && tar -cvzf - "$dir_backup" | gpg --encrypt --recipient $recipient -o "$dir_docker/backup_Docker.tar".gpg +fi \ No newline at end of file