stacks.sh

Backup des docker-compose.yml et des .env sur le NAS
This commit is contained in:
2024-12-29 19:58:24 +01:00
parent df32b22fd3
commit b31f31c17f

67
stacks.sh Normal file
View File

@@ -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