Today, I migrated my blog: http://www.rtnpro.com to Ghost. I was previously writing blogs and maintaining my static blog website using Nikola. I like Nikola for being a very featureful and powerful static blog generator. I find the ReStructuredText format handy when generating complex HTML, and especially, I fell in love with the custom RST shortcuts provided by Nikola. But, flexibility breeds complexity.
Why migrate?
- A blog post should be simple and easily renderable in blog aggregators. When you do too much custom HTML/CSS stuff in your post, e.g., playing grid layout of Twitter bootstrap, etc. things break.
- When you start using a lot of custom things provided by a static blog generator like Nikola, migration becomes a pain. Luckily, I had just started to use Nikola specific RST shortcuts.
- You want to write blogs, and not code. It was a pain to migrate to newer versions of Nikola. Usually, it involved a lot of fiddling with the conf files, sometimes the source code as well.
- I kinda like WYSIWYG, and especially web based editors accessible from anywhere over the internet.
- The final blow was my nikola based blog’s RSS feed not being parsed by the planet aggregator: https://github.com/rubys/venus used by Fedor planet, DGPLUG planet, etc. For a second, I thought, I can write a patch to fix wherever the bug is. But then, enough is enough. I want to write blog posts and not code each time to do it.
Migration
- Installed
ghost
plugin in my wordpress blog and exported all content in a formatghost
understands - Installed
ghost
on local machine - Signup and enter the admin dashboard
- Import blog posts from my wordpress blog
- Migrate RST blog posts from Nikola to Ghost
- Once everything looked fine, I installed
ghost
on my http://www.rtnpro.com server - Exported all local
ghost
content and imported that in my ghost instance for http://www.rtnpro.com - Rsync’d all the local images from
content/images/
to the remote server - Setup
supervisord
to runghost
on my server as a daemon - Added
nginx
rules to allow access to all public pages of www.rtnpro.com overHTTP
and blocked access to admin pages at http://www.rtnpro.com/ghost/. I’ve configured anothernginx
virtual host to allow access to theadmin
pages overHTTPS
.
Migration was not that painful as I was expecting it to be. It took me a few hours for doing the entire migration. I am liking Ghost’s simplicity and the admin dashboards and the web editor for writing blog posts.
Now, I can focus on writing blog posts when I write one and not go debugging through some code :)