Add remote offload of completed backups to Hetzner Storage Box

Ships every completed backup off-box over WebDAV via rclone, verified by
exact byte-size match before local retention or schedule rotation ever
touches it. Fixes prune_orphans to skip confirmed-offloaded backups whose
local copy was already purged (it previously hard-deleted their DB row,
discarding the only pointer to the remote copy). Installs rclone in the
Docker image and gitignores the container's rclone.conf location, which
lives inside the bind-mounted repo root and holds live credentials.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XjW4qocnaJxhugUi5ca8Wo
This commit is contained in:
2026-09-07 13:36:28 +02:00
co-authored by Claude Sonnet 5
parent 67c85e4184
commit 54f06a957d
10 changed files with 381 additions and 3 deletions
+4
View File
@@ -16,6 +16,10 @@ devplace-init.lock
notification-private.pem
notification-private.pkcs8.pem
notification-public.pem
# HOME=/app in the Docker app container, so an rclone.conf created via
# `rclone config` or DEVPLACE_RCLONE_CONFIG's default lands here on the
# bind-mounted host tree - it holds live remote-storage credentials.
/.config/
.pytest_cache/
.ruff_cache/
.opencode