Yesterday I made a decision to change my blog over to a new platform. Instead of WordPress I decided I was going to implement Ghost – a new blogging platform that was much faster than WordPress, but also much more complicated. Oh, the horrors I was to experience…
A recent blog post that I wrote, Can I earn money from what I love, talked about my love for software technology. But that did nothing to prepare me for what was about to happen.
Before I continue with my tale, you should know it all worked out ok. The very fact you’re reading this on a completely differently designed blog tells the story that no matter what my trials and tribulations were, I won. And that’s what’s important at the end of the day, that this blog is still alive.
But you should also be aware this is going to be a very technical tale, and if you’re not that interested in such things, you should probably stop reading now.
So, when did it all start… Ah, that’s right. It all started a couple months ago when Ghost was released to the public. I played around with it a little on a Linux VPS (Virtual Private Server), but couldn’t get it to work properly. I decided this was because I didn’t know enough about how to make it work on a Linux/Unix server, and I was just having too much trouble configuring the server and the internet domain settings to get it to work, so I left it behind.
However, a few days ago things started moving forward again, when I realised that due to an increase in traffic from sources interested in my writings on anti-feminism, my blog was really slowing down. The ‘bloat’ was causing too many problems when there was more than a few people visiting it at the same time.
So I tried implementing some plugins that would tidy up the blog and make it faster, but they didn’t really do much.
So I started playing with Ghost again, and managed to get it working as a test build, but wasn’t convinced it could be a good enough replacement for WordPress, because it had NONE of the functionality that I’d implemented into WordPress. It was difficult to consider moving away from it.
But then yesterday morning I tested the loading speeds of my blog compared to Ghost. I imported all my blog content into the test Ghost build and then compared the speeds. The WordPress site took an average of 10 seconds to load the front page, while the Ghost site took about 2 seconds.
I was convinced. I decided to make the change.
I tried to install Ghost onto my domain server using a software installer called Softaculous, but into a test subdirectory – I wanted to make sure everything worked first before transferring it into the base directory and replacing the current blog. But that’s when I ran into my first problem.
Ghost didn’t want to be installed into a subdirectory – it was to be the home directory or not at all.
So I backed up my WordPress blog (always make backups!) and then proceeded to completely delete it from the server, so that it would be free to install Ghost instead. But that was ok – I had a backup of the WordPress blog should something go wrong, and I also had all the content in a file that could be imported into the new Ghost blog, which I had tested and confirmed would work.
Even with these safeguards in place, it was somewhat nervewracking to delete my blog.
Finally it was removed and I proceeded to install Ghost into the home directory, but that’s when I got the second problem.
There were errors with the installation that made no sense to me. I deleted it and then tried installing again. Same thing. So I Googled the errors, and after some research I found out that I had a third problem. Installing Ghost via Softaculous onto an Apache server was beset with problems, and unless you had direct admin access to the Apache server to do some really complicated things, it wasn’t going to happen. (I didn’t have that access.) Ghost really needed to be installed on a Unix/Linux server.
Ok, no problem, I thought. Since I can’t install Ghost onto the same server that I’d installed WordPress, then I’ll just restore WordPress and explore other options later. And that’s when I ran into the fourthproblem.
The WordPress backup had corrupted and the blog could not be restored.
At this point I was saying, “You what?!” Well, there were a few other words included in there, but I can’t repeat them for fear of corrupting minors. Corrupting WordPress was enough for one day, I don’t want to include minors as well!
Rest in peace, my dear blog. I knew you well.
So… There I was, with a WordPress blog that couldn’t be restored – gone completely – and a Ghost blogging platform that couldn’t be installed. I had no blog.
That’s when necessity kicked in, and things started changing drastically.
Since I couldn’t restore the blog and I couldn’t install Ghost, I had no more use for that domain server. I had to use the Linux/Unix server I’d already had a working copy of Ghost on.
This meant I needed to change some of the backend configuration of my domain to point to a different server.
You see, the domain of www.alansjourney.com sits on a server which has an IP (Internet Protocol) address, and the two entities are linked to allow you to access it. If I’m moving the domain to a different server, I have to re-associate the different IP address to the domain, changing the DNS (Domain Name System) settings.
So I did this, going through the backend administration of changing servers – essentially becoming my own host provider instead of using a commercial host provider – while also trying to configure the working Ghost installation that was originally a test, and make it into a ‘production’ version.
While the backend DNS changes were spreading out across the internet, from America and outwards to all the countries of the world, my blog was essentially unavailable. Because the change in server address was yet to reach various countries, they would find my blog as seemingly offline, since I’d deleted it. And I was having my fifth problem, which in the grand scheme of things, wasn’t very minor compared to most of the other problems.
Because the DNS changes hadn’t reached Australia, I was having to do all the configuration of my blog using its IP address instead of its domain (eg. 184.108.40.206 instead of www.alansjourney.com). It wasn’t a big issue, it was just annoying.
So I managed to get the Ghost setup working with all my content from the old blog. I managed to find a theme that I really liked. I managed to work out how to modify that theme using text-editing via a Terminal that I was using to access the VPS and the blog config files. I managed to get all the important ‘sidebar’ links integrated into the theme/blog (you can see them to the left by clicking on the icon at top left), as well as the integration of Disqus for commenting, and do it so that all the old comments from the blog were still active on the new one. After all that, I managed to get everything working exactly as I wanted it to work.
In the space of 24 hours, I’ve had to cope with deleting a blog and finding it couldn’t be restored, to becoming my own hosting provider and quickly learning how to change the DNS settings to a new server, to learning how to use the Linux server to deploy and manage my own self-hosted Linux-based blog. Successfully.
I finally had a happy Ghost blog!
I’d say that the past 24 hours has been both horrendously stressful and awesomely exciting, and that’s why I love playing with and exploring software technology. It’s awesome fun!
I really like how the Medium.com website works, but they don’t allow integration into your own domain, so at least this theme allows my blog to look and act somewhat similarly.
Today has been a good day!
(I’ll be posting this tomorrow however, so when you read this, all this will have happened yesterday for you. 🙂 I’ve already got today’s blog post going out to email subscribers, and I want to try and keep the emails down to a single post per day. So until the Ghost developers implement scheduling, I’ll have to do this manually with saving as a draft and then publishing it when I’m ready…)
Thanks for reading! Please add your own thoughts below.
Don't forget to subscribe for new posts sent to you by email!