Files
2026-06-12 15:14:27 +02:00

73 lines
2.3 KiB
Bash

#!/bin/bash
set -euo pipefail
now=$(date +"%Y%m%d%H%M")
declare -a arr=("mail" "matrix" "monitoring")
declare -a monitoring=("monitoring_prometheus-data" "monitoring_grafana-storage" "monitoring_loki-data" "monitoring_alloy-data")
declare -a matrix=("matrix_db")
declare -a immich=("systemd-immich-pgdata" "systemd-immich-upload")
gitea_uid=$(id -u gitea)
immich_uid=$(id -u immich)
restore() {
for i in "${arr[@]}"; do
cd /opt/beeserver/${i}
podman-compose up -d
done
for j in "${monitoring[@]}"; do
rm -rf /opt/beeserver/monitoring/${j}.tar
done
for j in "${matrix[@]}"; do
rm -rf /opt/beeserver/matrix/${j}.tar
done
systemctl --user --machine gitea@.host start gitea-db.service gitea-server.service || true
systemctl --user --machine immich@.host start immich-db.service immich-redis.service immich-server.service || true
rm -f /home/immich/systemd-immich-*.tar
}
trap restore EXIT
for i in "${arr[@]}"
do
cd /opt/beeserver/${i}
podman-compose down -t 60
if [[ "$i" == "monitoring" ]]
then
for j in "${monitoring[@]}"
do
podman volume export ${j} --output ${j}.tar
done
fi
if [[ "$i" == "matrix" ]]
then
for j in "${matrix[@]}"
do
podman volume export ${j} --output ${j}.tar
done
fi
rsync -aH /opt/beeserver/${i} /opt/backup/beeserver
podman-compose up -d
done
systemctl --user --machine gitea@.host stop gitea-server.service gitea-db.service
rsync -aH /home/gitea/data /opt/backup/beeserver/gitea
systemctl --user --machine gitea@.host start gitea-db.service gitea-server.service
systemctl --user --machine immich@.host stop immich-server.service immich-db.service immich-redis.service
for v in "${immich[@]}"
do
sudo -u immich XDG_RUNTIME_DIR=/run/user/${immich_uid} podman volume export ${v} --output /home/immich/${v}.tar
done
systemctl --user --machine immich@.host start immich-db.service immich-redis.service immich-server.service
mkdir -p /opt/backup/beeserver/immich/
mv /home/immich/systemd-immich-*.tar /opt/backup/beeserver/immich/
tar -czf - /opt/backup/beeserver | gpg --batch --passphrase-file /opt/backup/passphrase.txt -c -o /home/beeshare/raid/serverBackup/beeserver_daily_${now}.tar.gz.gpg