From 2cb4863e38207fdfe7e8d20549c8d0493ea93632 Mon Sep 17 00:00:00 2001 From: "v.karaychentsev" <105486287+vk-aterise@users.noreply.github.com> Date: Fri, 20 Feb 2026 19:24:34 +0300 Subject: [PATCH] gitea: try to automate backup with backrest pre/post hooks and pgdump --- .../docker/gitea/backrest_hook_begin.sh | 5 ++++ .../docker/gitea/backrest_hook_end.sh | 5 ++++ hosts/home-morefine/docker/gitea/dump_db.sh | 24 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 hosts/home-morefine/docker/gitea/backrest_hook_begin.sh create mode 100644 hosts/home-morefine/docker/gitea/backrest_hook_end.sh create mode 100644 hosts/home-morefine/docker/gitea/dump_db.sh diff --git a/hosts/home-morefine/docker/gitea/backrest_hook_begin.sh b/hosts/home-morefine/docker/gitea/backrest_hook_begin.sh new file mode 100644 index 0000000..d23d145 --- /dev/null +++ b/hosts/home-morefine/docker/gitea/backrest_hook_begin.sh @@ -0,0 +1,5 @@ +# run pg_dump +bash /home/backups/docker/gitea/dump_db.sh + +# stop gitea +docker compose -f /home/backups/docker/gitea/docker-compose.yaml stop diff --git a/hosts/home-morefine/docker/gitea/backrest_hook_end.sh b/hosts/home-morefine/docker/gitea/backrest_hook_end.sh new file mode 100644 index 0000000..0c3e566 --- /dev/null +++ b/hosts/home-morefine/docker/gitea/backrest_hook_end.sh @@ -0,0 +1,5 @@ +# start gitea +docker compose -f /home/backups/docker/gitea/docker-compose.yaml start + +# remove temp backup file +rm -f /srv/backups/pgdumps/gitea/pg.dump diff --git a/hosts/home-morefine/docker/gitea/dump_db.sh b/hosts/home-morefine/docker/gitea/dump_db.sh new file mode 100644 index 0000000..b6c3976 --- /dev/null +++ b/hosts/home-morefine/docker/gitea/dump_db.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e + +CONTAINER="gitea_pg_db" +USER="gitea" +DB="gitea" +BACKUP_DIR="/srv/backups/pgdumps/gitea" +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"