Hi all,
I am not sure whether this post is relevant for the community or in the right category, so feel free to move or remove it if not applicable.
A while ago, I did set up a Ghost installation via the DigitalOcean Ghost 1-Click App deployment.
For now, I’ve configured the backups to happen on DigitalOcean itself, as point-in-time image backups, and on top of that, granular backups of the individual crucial files and database leveraging SnapShooter.
However, I am not entirely sure in what order I’d need to use each of these files in a restore or how they relate to each other. To extend, I’d like to validate whether the current backup configurations cover all the aspects for recovering my Ghost blog. Should it ever (but hopefully not) be required.
Can someone advise me on this matter, with the following print screens as reference on how my backup is configured currently?
Snapshooter backup schedule configuration:
Files being backed up, as far as I can see:
DigitalOcean backup schedule configuration:
Backup overview of DigitalOcean:
If any files and/or folders are missing, configuration is not properly set up, or someone has better suggestions on properly automating these backups, do not hesitate to let me know. Maybe others can also benefit from this question and answers at later times.
Thanks in advance!
Best regards,
Ian
Looks you probably have three distinct kinds of backups:
- Full filesystem snapshots. Cloud hosts usually make these cheap, fast, and easy, because they only store the incremental changes from one day to the next. The use here is that you could restore your entire server to the state it was yesterday or last week. This is a big hammer that would rollback both the filesystem and the database state. It contains all the contents of the other two backups, and more. Your site might be offline briefly as you shutdown the server and bring it backup on a new snapshot.
- Ghost content backups. Your screenshots also show backing up just the directory of a Ghost file system directory. The use-case here would be that you deleted a theme file, HTML or CSS or something and want to restore just that. You should be able to find in this backup and surgically restore it. I believe right now Ghost never deletes uploads, so for better or worse, you shouldn’t need to restore those from a backup unless you’ve manually removed a file you regret. These restores can be done “online”.
- MySQL database backups. These allow you restore older versions of your database, or specific parts of it. Maybe you deleted a post and want to bring it back from the dead. I don’t think Ghost has a native feature to restore those, so a database backup would be needed. This is the most technical of the three backups. There are different ways to use them depending on what you want to restore. Depending on the context, you maybe able to extract and restore some bits “online”, while completely rolling back the database could involve some downtime. Depending on what happened it may be easier to rollback using the full filesystem snapshot backups instead of the DB backups, as the database data is stored on the filesystem.
In any case, a backup is considered really “working” until you’ve tested it. Consider some of the scenarios you’d like to prepare for and practice recovering from. Temporarily rent a second test server if you need to. Then when you really do need your backups to be restored, you’ll be prepared!
2 Likes
Hi @markstos that’s an interesting detail, in fact. I was under the assumption the content backups, configuration file backups, and MySQL backups were related to each other, and all of them were required simultaneously to guarantee a proper full restore. But from my understanding, they serve a different independent purpose then, correct?
I was reading the documentation in here, and there was, at least for me, no clear distinction being made in here for me.
I’m not entirely sure, therefore, when which one would be required.
For the full backups, it seems more obvious, since it’s an all-or-nothing story. I’ll roll back or restore the entire site to a point before.
For the other two options, it is not 100% clear then which one would be required for what part or how they relate to each other. Is there any more detailed documentation regarding this that you’re aware of? 
Regardless, I was definitely planning to spin up a 2nd droplet, temporarily, to tinker around with the backups, try to restore things, and see if the expectations are met.
Thanks in advance for the input so far!