From ad5fad1bd3711eb0047ae780b2972780b3850c1b Mon Sep 17 00:00:00 2001 From: "v.karaychentsev" <105486287+vk-aterise@users.noreply.github.com> Date: Fri, 20 Feb 2026 19:54:00 +0300 Subject: [PATCH] immich: configure backup with backrest --- .../docker/immich/backrest_hook_begin.sh | 5 ++++ .../docker/immich/backrest_hook_end.sh | 5 ++++ hosts/home-morefine/docker/immich/dump_db.sh | 24 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 hosts/home-morefine/docker/immich/backrest_hook_begin.sh create mode 100644 hosts/home-morefine/docker/immich/backrest_hook_end.sh create mode 100644 hosts/home-morefine/docker/immich/dump_db.sh diff --git a/hosts/home-morefine/docker/immich/backrest_hook_begin.sh b/hosts/home-morefine/docker/immich/backrest_hook_begin.sh new file mode 100644 index 0000000..ccffb12 --- /dev/null +++ b/hosts/home-morefine/docker/immich/backrest_hook_begin.sh @@ -0,0 +1,5 @@ +# run pg_dump +bash /home/backups/docker/immich/dump_db.sh + +# stop immich +docker compose -f /home/backups/docker/immich/docker-compose.yaml stop diff --git a/hosts/home-morefine/docker/immich/backrest_hook_end.sh b/hosts/home-morefine/docker/immich/backrest_hook_end.sh new file mode 100644 index 0000000..56e5890 --- /dev/null +++ b/hosts/home-morefine/docker/immich/backrest_hook_end.sh @@ -0,0 +1,5 @@ +# start immich +docker compose -f /home/backups/docker/immich/docker-compose.yaml start + +# remove temp backup file +rm -f /srv/backups/pgdumps/immich/pg.dump diff --git a/hosts/home-morefine/docker/immich/dump_db.sh b/hosts/home-morefine/docker/immich/dump_db.sh new file mode 100644 index 0000000..f812487 --- /dev/null +++ b/hosts/home-morefine/docker/immich/dump_db.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e + +CONTAINER="immich_postgres" +USER="postgres" +DB="immich" +BACKUP_DIR="/srv/backups/pgdumps/immich" +TMP_FILE="$BACKUP_DIR/pg.dump.tmp" +FINAL_FILE="$BACKUP_DIR/pg.dump" + +echo "Starting [$DB] pg_dump..." + +mkdir -p "$BACKUP_DIR" + +# remove old backup file +rm -f "$TMP_FILE" "$FINAL_FILE" + +docker exec -t "$CONTAINER" \ + sh -lc "pg_dump -U $USER -d $DB -Fc -Z 0 --no-owner --no-privileges" \ + > "$TMP_FILE" + +mv "$TMP_FILE" "$FINAL_FILE" + +echo "Done: [$DB] backup saved to $FINAL_FILE"