While the traffic here is fairly low, it is fair to warn that there are some major changes underfoot. Since 2011, with a slight break, and a period of time where this blog piggybacked on another, this domain has been continuously active.
Started in 2011, when The Dude had a really fucked up interaction with his boss, and his company, this was originally intended as a safe place to unload. And it helped maintain The Dude's sanity.
Originally a Wordpress, it has been a testbed for a project in Joomla, back to Wordpress, then to Ghost, first as a Ghost Pro hosted solution, and then as a self hosted Ghost instance.
Ghost is a pretty slick environment, easy to write, clean and simple, but with a lot less bells and whistles than Wordpress.
For a long time (as in more than a year,) Ghost has been in "beta" or pre-1.0 version. Unlike Wordpress, that uses a pretty standard MySQL, Apache, and PHP environment, Ghost uses nodejs, and Nginx. The pre-1.0 version used a local, lightweight database - SQLite, and apart from medium Linux skills, it was pretty easy to setup. However, updates were a major pain in the arse. A ton of shell commands, some magic, and if you were unlucky, you needed to do some fiddling to repair broken node.js bits. It got pretty stable at 0.11.5 and the last half dozen times I updated it, there were no issues.
At a hundred and fifty posts, the SQLite database was definitely a bottleneck (on a tiny 512M VPS), clearly its ability to scale was limited.
Then I got the notification that Ghost 1.0 was released. A pretty significant rewrite of the platform. Still reliant on Nginx and Nodejs, they did take the plunge to MySQL as a database. Other big changes are a new framework for installing and maintaining Ghost -
ghost-cli - that automates much of the configuration and maintenance of the system. I also see hints that soon there will be support for multiple Ghost blogs on one install, a cool feature.
The migration wasn't too difficult. It pretty much required me to create a new VPS (I host on Digital Ocean) and this time I bumped it to a 1G instance, and followed the script. However it wasn't without hiccups.
At first I thought I would just create an instance and then re-direct my domain to the new host. Oops, that caused the install to fail, until I read the requirements in more detail. You must have DNS configured to point to the new host.
Then the next day I edited the config file to setup the mail sending to use my google account. Having done that before, I just dove in. Bad idea, I fouled something up and the system stopped running. The .json file is very particular in the format. (this one, I ended up re-installing from a bare VPS droplet, losing several hours of fixing posts.
- The new admin interface is slicker.
- There is better markdown support (I haven't tried tables yet, but in general it is more compliant
- Post images no longer have an option to link (from my image repository and transformation account at Cloudinary. I can still embed them in posts
- My theme (blockster) isn't supported yet, but I have to admit that the standard theme - Casper - is pretty awesome. I might not go back to Blockster.
- Some weird formatting issues when I pulled my content over. Took about 8 hours to go through and fix the anomalies.
- There are now more post options, including a dedicated "Excerpt" field, and with the latedt update (1.0.5) there are ways to customize the Twitter and Facebook cards.
- Updates are fast and furious. There have been three in the week since I installed it. I am sure that as it stabilizes, it will slow down, but the team is laser focused on the development. Monitoring the slack channel there is a metric buttload of work happening. Cool.
I am glad I jumped on the Ghost train way back, and also for taking the plunge to self host. It is very rewarding, and a great experience for the admin and the users. A bit more effort than Wordpress, and a lot less extraneous features and capabilities, it works for what I do with it.
I will note that when I imported my data, it also brought over my code injection for the Google Analytics tracking. A nice touch.