chore: re-home the control-plane dump to rig #8
No reviewers
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:apply
scope:capture
scope:coolify-api
scope:fleet
scope:manifest
scope:secrets
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/cast#8
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/rehome-control-plane-dump"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to heavy-duty/rig#9 (merged), which
added
rig coolify backup install. The script now exists in both repos; this removes cast'scopy.
Why it was never cast's
scripts/dump-coolify-db.shopens withdocker exec coolify-db pg_dump …. That only workson the control-plane box, as root, under a scheduler. cast is the off-box tool — and
cast's own README already says so:
The script contradicted that invariant. It was also entirely unreferenced: nothing in
src/ever called it, andinstall.shonly picks it up via ascripts/*.shglob. It waspayload that survived the rig/cast/infra split without being re-homed.
What replaces it
rig coolify backup install— which does the things cast structurally could not do from offthe box: install
age+awscli, drop the script, install a systemd service + timer, andtemplate an empty
0600bindings file for the operator to fill.Two defects were fixed in the move rather than carried across:
pg_dumppiped intoagestillproduces a valid, tiny, encrypted file — it uploads cleanly every night and looks exactly
like a working backup. The rig version refuses to upload an empty artifact.
aws-cli >= 2.23breaks against S3-compatible backends (new default upload checksumsthat Hetzner/MinIO/Ceph reject). Debian 13 ships 2.23.6, so this is the default install.
The rig unit defaults both checksum knobs to
when_required.What stays, and why
register-github-app.shandrestore-db.share genuinely cast's: both run from yourmachine, driving the Coolify API or reaching a box over SSH. The README's Scripts section now
states that boundary explicitly, so the next on-box script doesn't land here by default.
Testing
npm run build✓ ·vitest69 passed ✓ ·biome checkclean ✓ — unchanged, sincenothing referenced the removed file.
⚠️ Ordering: rig#9 is merged, but any box still running the old runbook step (copying the
script out of
~/.local/share/cast/scripts/) must move torig coolify backup install— thepath disappears on the next
castupgrade.🤖 Generated with Claude Code