Anyway us other instances can help? We still have copies of the content (except for images).
We should also have the activitypub objects that we've received cached in our database.
Edit: it seems that my instance fetches the latest posts instead of using its cache when loading a midwest community. But still, we should have some content in the activitypub table.
I don't think there's an easy way to "replay" them. But in theory, you should be able to take the entries in that table related to midwest social from any other instance and start broadcasting them anew. The remote instances will reject them because to them they are duplicates, but you would be able to recover lost content.
Now I realize this is far more complex, but in theory it should be possible to create a tool that does this specifically for these scenarios.
Digital ocean does a backup once a week over the weekends. That's just the schedule I'm on. I suppose I could do my own but that would require finding somewhere to store 60 GB. I'll look into it though.
What I do is create a new live snapshot before doing any changes to the server. I don't use digitalocean, but I think their snapshots cost 6 cents per GB/month, and are only charged like that if you retain them the whole month.
If everything goes well after a change and you delete the snapshot a day or two later (or after the next backup), it's basically free or very cheap. I think it's just a minimum of $0.01 per snapshot.