Disaster Recovery
When your hosting provider ghosts you
A couple weeks ago my hosting provider ghosted me. Site gone, support gone, prepaid hosting refunded, just gone. Guess that $4 VPS for 3 years was too good to be true.
Thankfully I had a somewhat recent backup of my ghost install so not much was lost (only a couple posts, why is a story for a different time. Thanks ADHD.). When trying to figure out what to do I decided to look into simpler alternatives than Ghost. Not because it didn’t handle what I needed, but because I wanted to avoid a server and use GIT to provide the backing store. This makes it portable and there are a multitude of free and paid git providers. (plus markdown and git are second nature due to being a developer)
The second but lesser consideration was cost for hosting. Since it was going to be a static site, there were a couple of options but GitHub pages jumped out as a good option with native support for Jekyll so the build process would be handled. The main issue I had with GitHub Pages was that I wanted to host this blog along with a site for my custom miniature painting side business with the same basic technology, but Pages isn’t free with custom domains for private repos with out a paid subscription (at $7/month its actually pretty decent for unlimited sites, bandwidth, generous build time for Jekyll etc.). It’s an option for the future, though.
The other options were Netlify or AWS for hosting (Work is heavily in AWS right now so its more ease of knowledge transfer for the AWS option). I ended up going with Netlify for the Hugo build chain they have.
Overall the migration was simple:
- convert the Ghost database to Markdown with GhostToHugo
- Install Hugo and create a new site (or use the basic structure from Ghost to Hugo
- Pick a theme
- Configure the theme
- Commit and push to a Git provider (one of the big three, I chose GitHub since I already have several open source projects there.
- Create a Netlify account
- Create a site
- Link it to GIT
- (Optional) Set up your custom domain name.
I‘ll be creating a post in more detail about the full process but there are also quite a few guides out there already (I followed a couple so I’ll create the one to replace them all. And as a bonus I‘ll be creating another for how to do it from an iPad for the slight exercise in technical massochism.
The last step I needed to figure out was how to handle content management. Since I was planning on using git, the super simple was just use a git client, Netlify sets up a githook to trigger the build of the site so pushing to master is all that is needed.
However how would that work when I was mobile or away from my desktop. GitHub‘s UI to create a file would work in a pinch, but I am also looking at possibly helping out some friends with their blog (move away from Hosted wordpress and the ads that get injected, again hobby site and wordpress hosting is expensive through wordpress.com) so finding a CMS that could work for a non technical user was important.
Enter Netlify CMS. It’s exactly what I was looking for in the integration with GIT, is from the same group that I am hosting with, and is just two files, an index.html
to launch the React SPA and a config.yml
for the configuration. After that it handles any commits to git and has a pretty decent rich text editor (Where this post was created).
So setup complete, blog back up and running, and time to finally write that post about being diagnosed with ADHD at age 35.