colibri/scripts
Sam & Claude 6bf2951fec
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
feat(backup): domedog-side pull script for Forgejo+Vault (off-box independence)
Addresses HOST-MATRIX §4 backup-independence: the Vultr box (Forgejo+Vaultwarden)
is a single point of failure for backups AND secrets. This pulls its dumps to
domedog (already paid, on-tailnet, 51G free) — zero new cost.

- PULL direction: a compromised Vultr can't reach into / destroy the backup history
- verifies integrity (forgejo dump zip + vault sqlite PRAGMA integrity_check)
- encrypts at rest with age (vault dump = secret material; private key stays off-host)
- dated snapshots + retention (versioned, not a single overwritten mirror)
- opt-in Colibri board status (transition a task done/failed = backup health signal)
- config (host + age recipient) lives in ~/.config (gitignored); no hosts/keys in repo

Vultr side stays responsible only for producing consistent dumps (forgejo dump +
sqlite .backup) and exposing them read-only. bash -n clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:52:26 +02:00
..
check-format.sh chore: adopt markdown formatting gate + one-shot prettier sweep (Sam & Claude) 2026-06-04 20:13:47 +02:00
ci-checks.sh ci: add Forgejo Actions gate (fmt, clippy, tests, markdown) (Sam & Claude) 2026-06-04 20:47:00 +02:00
clawdie-backup-pull.sh feat(backup): domedog-side pull script for Forgejo+Vault (off-box independence) 2026-06-20 10:52:26 +02:00
clawdie-backup.env.example feat(backup): domedog-side pull script for Forgejo+Vault (off-box independence) 2026-06-20 10:52:26 +02:00
colibri_poll.py feat(freebsd): cross-host TCP bridge + agent polling loop 2026-06-19 12:18:52 +02:00
colibri_task_done.py feat(freebsd): cross-host TCP bridge + agent polling loop 2026-06-19 12:18:52 +02:00
fake-pi-agent.py test: add Pi spawn path proof integration test 2026-05-31 16:23:11 +02:00
glasspane-stress-test.sh chore(scripts): use generic python3 in glasspane check (Sam & Pi) 2026-06-17 14:58:26 +02:00
headroom-sidecar.py fix(headroom): harden sidecar protocol and timeout (Sam & Codex) 2026-06-14 01:30:45 +02:00
import-layered-soul.sh fix(import): treat each SKILL.md as one skill (not every .md) 2026-06-14 02:08:12 +02:00