Files
homelab-infra/ops/borg-ui/scripts
Micha 0ae44bd797 Write Prometheus textfile and Gitea bundles world-readable
node-exporter runs as nobody:65534 inside its container and was
hitting node_textfile_scrape_error 1 on homelab.prom, because the
file was 0600 root:root (mktemp default). Set it to 0644 right
before the atomic mv. Bundle inhaltsidentisch zum Git-Repo, ohne
Secrets (.gitignore-abgedeckt) und nicht sensibler als die
uebrigen /mnt/user/backups/borg/dumps/latest/*.dump-Files, die
ebenfalls 0644 sind. So funktioniert auch der Nearline-Pull-Workflow
ueber SMB (docs/H_DRIVE_NEARLINE_PULL.md).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 20:41:07 +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.