Like a lot of developers, I've been meaning to turn one of the domains I've purchased into a blog. Recently, I started looking into it again, and having long ago decided that Ghost would be my writing platform of choice, I just needed to decide where it would live.
I've always been a developer, and when it's come to handling systems administration and infrastructure I've always shied away from anything that needs a lot of attention. I know how to get around on a server, and I can make the changes I need to make, but I generally want to focus on building something rather than configuring a box. Let's just say I put a lot of stuff on Heroku, and leave it a that.
Ghost + Heroku (Oh and S3)
So, with that in mind, I went straight to googling "Ghost Heroku" and clicking on whatever was shoved to the top of the results (like any sensible person) and started reading.
What you quickly come to find, as is common with Heroku applications, is that files uploaded to your heroku instance are not permanent. Really, it's not just those files but the entire dyno that is ephemeral. It's just the way Heroku handles deployment and scaling, and it works wonderfully for running applications but it's (literally) not built for file storage.
User's or applications adding files isn't a new thing, and there are many solutions offered by Heroku and other 3rd parties. S3 tends to be the go to and Ghost works easily with it, but this wasn't quite the route I was looking for. I wanted to set up Ghost and let it do it's thing.
Ghost + DigitalOcean
As you've probably already gathered from the title, I ended up on DigitalOcean. Given my earlier paragraphs about how little a operations person I am, this wasn't exactly what I had been aiming for. But after poking around and thinking about it for a while, I decided it was time I put some more work into properly running a server.
DigitalOcean has a lot of different ways to get Ghost up and running, including a long form tutorial that had me installing and configuring my droplet by hand. It was great! I've never messed around with Ubuntu's Uncomplicated Firewall, but it was super easy. I also got to dive into to some Systemd configuration which I've never touched before. In fact, DigitalOcean has a post on Systemd that I'm going to read next just to learn a bit more about what I've gotten myself into.
Long story short; I went with the (mildly) more difficult route and came up with a lot of great new knowledge and a working blog.
I have couple of projects I'm considering next. I want to build a realtime chat app that I'd like to turn into either a Meatspace clone, or a direct support tool that you can drop into a web app like a lightweight Intercom.
Anyway, I'll update as I start the build out.