Update: Cloudflare cache is live and I have the static pages. Images are mostly there too. Wayback has some older blog posts. Still missing the WooCommerce product database obviously. Client knows, they were shockingly calm, said "we still have the recipes on paper." I am not okay but I will live.
Accidentally rm -rf'd a client's entire WordPress
Canadian bakery owners are built different. In Vancouver we had a client lose everything to ransomware and they offered us tea while we explained.
You checked fail2ban yet? I am serious. A shell at 3am with a convenient rm -rf is not always user error. Logs. Now.
To be clear I meant I learned about backups the hard way, not that I deleted client data. Hetzner Storage Box runs me 3.81 EUR for 100GB and it mounts over SSHFS. Immutable snapshots through rclone with --backup-dir. The bakery would have survived.
Thread status: marcus_qc has partial recovery path. Security audit pending per olespete. Let us know what the logs say.
I am pinning a reminder that backup vendor recommendations belong in the tools section. Carry on.
This is the most abuse desk story I have ever heard and I worked abuse adjacent for two years. The cookies. You ate them.
If they used any payment gateway check if Stripe or PayPal still has product descriptions in the dashboard. Not the database but better than rewriting from memory. I did this for a warung client in Jakarta, the payment processor had more than we expected.
GPU poor but backup rich. rsync to two locations, one is a literal hard drive I walk to my parents house. Paranoid? The earthquake risk in Tokyo is not a joke. Your bakery client just learned what "single point of failure" tastes like.
I have worse. I have better. I have a filing cabinet of "client destroyed own data then threatened to sue for our failure to prevent them." The cookies were a highlight. Usually it is just shouting.
Ja this was the correct first answer nein I did not say it first ja credit where credit is due nein do not forget the database ja the Cloudflare has no database ja you need the sql dump from somewhere nein there is no sql dump ja then you rebuild by hand ja it is painful nein there is no other way