Files
homelab-infra/ops/borg-ui/scripts
Micha 0847d839e7 Healthchecks heartbeats for renovate and gitea-bundle-mirror (6h jobs)
Same endpoint-agnostic ping via EXIT trap. These two jobs have no warning
level, so only rc==0 pings success, any non-zero pings /fail. gitea-bundle
edit is POSIX-sh clean (script is /bin/sh). Capability URLs from per-job host
secret files. bash -n verified.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 21:09:21 +02:00
..
2026-05-26 20:16:19 +02:00

Borg dump scripts

These scripts are intended to run on the Unraid host before a Borg backup starts.

Current script

  • pre-backup-dumps.sh
  • gitea-bundle-mirror.sh

Output

Fresh dump artifacts are written to:

  • /mnt/user/backups/borg/dumps/latest

Fresh Gitea repository bundles are written to:

  • /mnt/user/backups/git-bundles/gitea

Borg UI should include /local/borg-dumps as a backup source. The Gitea bundle target should also be part of the Borg scope, either through the backups share or an explicit Borg source.

The dump set also includes unraid-flash-config.tar.gz, a host-generated archive of /boot/config plus checksum and manifest. Treat this archive as secret backup material.

Notes

  • The script is written for host execution where docker is available.
  • gitea-bundle-mirror.sh additionally expects host access to the Gitea bare repositories under /mnt/user/services/gitea/data/git/repositories.
  • It does not assume Backrest.
  • It keeps only the latest dump set because Borg itself provides history.

The recommended automation path is:

  1. Unraid User Scripts on the host
  2. host-side schedule / cron
  3. Borg UI backup job afterwards

This is preferred over a Borg UI inline hook because the dump script expects:

  • host access to docker exec
  • host paths like /mnt/user/...
  • direct write access to the dump target directory

Do not treat pre-backup-dumps.sh as a Borg UI inline script unless the architecture is deliberately changed later.

See USER_SCRIPTS_SETUP.md for the intended host-side rollout.