Skip to content

Runbook: disaster recovery

The shops follow the platform-wide plan in the Keferboeck KB (docs.keferboeck.com → Runbooks → Disaster recovery); this page is the shop-specific delta.

  • Backups: every shop database (hampers, joinery, marlowfinch, wagwhisker, flugschule) is dumped nightly at 03:30 UTC to Spaces (keferboeck/db-backups/), 14 days retention, deliberately before the 04:15 demo reset.
  • Restore one shop: fetch the dump, kamal app stop in that shop's directory, restore into <shop>-db, kamal app boot. Demo data can alternatively be rebuilt from scratch with bin/rails demo:reset_catalogue — for a pure demo, a reseed is often the faster recovery.
  • Droplet loss: kamal setup per shop directory after the platform DNS and proxy steps; then either restore dumps or reseed. Shops are stateless beyond their database and generated images; images regenerate from the committed briefs via the FLUX pipeline.
  • What actually matters: the newsletter leads live in the portal, not the shops, so a total shop loss loses no client data.