Ghost blogging

I began this writing challenge in Google Docs, and then I decided to move to Ghost. I had experimented with it before – about 8 years ago – and some Googling said it was still a good solution, so I went for it. From my recollection of my last experiment, I had self-hosted it, so I set about doing that again, but I ran into some issues. I don't think they were huge, but they held me back and I was on limited time and wanted to get something working, so I signed up for a Ghost Pro trial, set up https://somewhere-good.ghost.io/, and used that for a bit. It wasn't perfect – I struggled getting the site to look decent, for e.g., and I still don't know how to add footnotes – but it was more than good enough.

About 2 weeks later, Ghost told me that my trial period was over and that I needed to start paying. The pricing page they show you says plans start at $15 a month, but that option was greyed out because of the theme I was using. The next cheapest option, the Publisher plan, was $29 a month. I didn't even really like the theme anyway, so I changed to a default theme only for it to then say that it wasn't available with Web Analytics available. I hadn't used that feature and didn't really care about it anyway, so I turned it on and the $15/month option became available...but then I realised that's the monthly price if you're billed annually. If you know me you might know I'm a bit of a cheapskate, and I wasn't sure I wanted to commit to this for a year, so I went back to looking at self-hosting, which I think is about $6/month.

Ghost has a decent self-hosting guide for Ubuntu, so I followed that and it got me most of the way. I used Digital Ocean as my hosting provider. I've had a dormant account with them for a while and I still like their product so I fired it up again. At one point I checked out using the Ghost app from the Digital Ocean marketplace to save me time, but the smallest droplet that allows is $12/month rather than $6/month, so I figured I'd take the route of maximise learning. 😄

I also already had this domain name on NameCheap so I didn't need to buy one.

When I tried setting up self-hosting a couple weeks ago, I went down a system hardening rabbit hole that ended up with me locking myself out of my servers a couple times 😅, so this time I opted for simpler hardening that didn't do that. With that, I got Ghost up and running fairly quickly, though I think I had to up the power of the droplet at installation to get it to complete. (I dropped it back to the lowest afterwards.) I was also able to transfer my entries from the Ghost Pro site using the export and import tools, although the images and at least one of the links didn't transfer, so I had to manually update those. That was fine given how few entries I had, but it would've been a major pain if I had a lot of entries, and it might be a barrier to me transferring to Ghost Pro or something else in the future.

Having done that, everything seemed fine. The site loaded, I could manage the settings, and I even wrote and published a new blog entry. But when I tried to sign into it from my phone the next day, I got an error saying I can't because mailing was set up. It turns out that Ghost enables 2 factor authentication by default when you're signing in from a new device, but the hosting guide I linked above doesn't mention that, nor does it talk about setting up email. You can disable that by changing this line in /var/www/[site-name]/config.production.json to false:

  "security": {
    "staffDeviceVerification": true
  },

But I decided to try to get it working. Plus Setting up email allows members to subscribe to newsletters. It turns out that Ghost only supports Mailgun, but fortunately I already had a Mailgun account from years before, though I'd never verified the domain. With a bit of tinkering I got that working and now everything seems good. 🤓😎