/ Meta

Configuring a self-hosted Ghost blog

Or the tale of making this place work. (I'll put up a detailed how-to post up if someone shows interest)


Well, let me start with a bit of my "blogging" history.
Remember Blogspot? That thing that became Blogger and used to be/is backed by Google yet continues to be ugly and unusable? That was where "The Shadowden" as a project began. It was a stupid project that quickly graduated from kindergarten and went on to become a rebellious teen on Wordpress. After just 8 or 9 years it was time for "The Shadowden" to find its own place in the world.

Both platforms did what they promised to do but at the end of the day, they never felt mine. Yes, I could customize this and that but I could never actually change fundamental things about the platforms. And yes, you could say "You silly, you could've used self-hosted Wordpress!". I probably could have. But I still saw that as too much work and I wasn't ready for such a commitment.

I was already thinking about "being brave" when I received an email from Wordpress that my domain (shadowden.com) would automatically renew in December for 18€. Wait, are you nuts?! That's a whole book! Or like two months of Netflix or Spotify. Or 9 cups of Mocha at Starbucks. You get the idea.

And if I was going to move my domain to another registrar, I might as well move the whole blog somewhere else. Several of my alter egos kicked in and like tiny Obamas started to scream "Yes we can". So I did it.


Choosing a platform was a matter of several days of researches. And by research I mean furious googling and annoying friends that had more experience in using different platforms.

Excluding Blogger and Wordpress, some of the platforms I explored were Tumblr and Medium.

I already have several (quite popular) blogs on Tumblr and I just didn't feel like that's the place I want to be on. Feature-wise I am happy enough with what that platform is offering. I do appreciate the Tumblr scene and community but that just wasn't enough to convince me.

Medium was a no-go just because I didn't quite like the audience it was receiving here - in Bulgaria. Some douche IT people had already spoiled the "Medium-experience" for me. I don't want to be a part of that crowd.

Those two had pretty big chances in my mind at a certain point in time but they both weren't viable options plainly because I couldn't self-host them.

When I found out about Ghost, the main con was "it's hard to install". How hard can it be? I'm a programmer, I should be able to install it, shouldn't I? (Ultimately I never actually had to install Ghost on my own.)

Pro's, on the other hand, looked good for Ghost. I can self-host it. It's open source and has an active community of developers around it. It's fairly new. It's free, written in JavaScript (Node.js) and has a default visual theme that doesn't actually suck (for a change).
Yes, it lacks quite a lot of features but it still has that freshness that pushes you to fiddle with it.


Hosting was a trivial choice - DigitalOcean. One click and 5 dollars later and you have your own piece of a fully-functioning server. Also - one-click apps. When you provision a new droplet you can choose an app that will be pre-installed on your droplet. That's how I got a server with Ghost without having to install Ghost myself.

Ghost one-click app


The process of transferring my domain took the longest. If you have bought your domain from Wordpress, the steps are roughly as follows:

  1. Unlock your domain from Wordpress
  2. Get transfer code via email from Wordpress
  3. Use transfer code with the new registrar
  4. Wait for Wordpress to confirm the new registrar and release your domain
  5. New registrar should automatically transfer your domain

Took me about 9-10 days but now I won't have to pay 18€ for a .com domain. (For the record, I transferred to Namecheap)


Now the blog was up, but with the "moving towards more secure web", I had to get me one of those certificates. Naturally used Let's Encrypt. Specifically, I used the [getssl](https://github.com/srvrco/getssl" target="_blank) tool, with which you can not only get SSL certificates for your domain but also automate certificate renewals.


Currently, (December 2016) Ghost has rss built in, but it was important for me that people had a way of receiving my posts via email. The current implementation of "Subscribers" in Ghost allows you to only collect emails, which is not enough. That's why I chose MailChimp. Its free tier supports a List with up to 2,000 subscribers (sufficient for now). Another feature I quite like is the option to send weekly newsletters (that's how it's set up now). I also have Mailgun hooked up to reroute inbound emails.

Setup took me about an hour and it was pretty straightforward.

Additional stuff

  • Ghost doesn't offer an out-of-the-box way to track blog activity yet. Though it offers Code Injection so Google Analytics was a no-brainer in this situation.

  • I'm using the default theme, called Casper (neat, right? Get it? Casper - Ghost...). I'm yet to browse through pre-made themes to see if something catches my eye. Suggestions are welcome!

  • Sadly Ghost doesn't have comments too. I'm planning on using Disqus for now. If you see a Disqus comments section below this post, then apparently I've settled on it.

I guess that's it for now.
Let me know if you want details on any of the steps in the process. Make sure to subscribe (only 1 email per week and that's only if I've posted something, I promise!) and if you have any suggestions, shoot me an email at hi(at)shadowden(dot)com