After resurrecting this blog about a month ago, there have been some evolution of thinking.
Initially, I started again as a way to futz around with Ghost. As a CMS, especially for a simple blog, it is alluring. Simple, streamlined, and not encumbered with a lot of baggage (looking at you Wordpress), it was an interesting diversion. I began with a Pro account (back when it was $9.95 a month, man, I wish I had kept that alive as a legacy now that it is $39.95 a month) but switched to a self hosted account back in the pre 1.0 days.
Now, it is pretty solid, and a lot less hassle to keep up to date.
Incarnation 1 - Multi-Ghost install
I knew that it was possible to run two Ghost instances on a single host, but I will admit there was a fuck-ton of bad, old, and just plain wrong information out there.
My first attempt was to create a small Digital Ocean droplet, with the one button install of Ghost. That might have worked, but as I mentioned earlier I was following flawed and outdated advice.
I swear in the space of 3 days I must have spun up and torn down the droplet 10 times.
Finally, I got it working, turns out that the bulk of the instructions on the web are wrong or outdated. What did work was:
- Create a droplet
- Follow the instructions to install Ghost on it
- Create another folder in the /var/www/ directory
- Change to that directory
ghost installand follow the instructions
I swear, once I figured that out, I was facepalming so hard. It was trivial once I figured that out. Where did I find this tidbit? Searching the user forums hosted by Ghost.
End result: A single droplet (the $5 variant) with 2 Ghost blogs. One this one (The PM Dude), and one with a staging domain that I keep around for testing.
Running it as an app in Serverpilot
Serverpilot is a pretty fucking cool tool. It is a server management interface, that when installed on a host, allows you to run multiple sites (called "apps") seamlessly, and manages all the minutia. If you want to run a blog, I can't recommend enough how awesome Serverpilot is for this.
If you are a Wordpress person, it will have the 1 button install, as part of the creation of the app. It manages databases, permissions, updates and the firewall/security. Having delved into the VPS world with a cPanel interface, and the learning curve there, Serverpilot is lean, mean, and effective.
Serverpilot takes a plain server (nothing installed, just a minimal install) and installs Apache, Nginx, MySQL, firewall, swap space, and creates accounts, to get your server ready. Then you create apps. Mostly tailored to PHP applications, it does handle the NodeJS stack that Ghost runs on, you just have to do that install yourself. A good walk through that isn't too old is at this link and it does work.
Of course, the droplet that I had been running on was ancient, an Ubuntu 14.04LTS droplet, that I couldn't update because my wife's site was using a highly customized theme that didn't support PHP versions newer than 5.6 (a fact that Wordpress had been reminding me was a huge security hole).
That vintage Ubuntu didn't support the version of NodeJS needed, so it was right out.
But out of all adversity, comes opportunity, as I used this excuse to get my wife to finally consider changing the look and feel of her site. The security risks were worrying (although, her traffic volume is quite low), and that was enough to get the migration going.
On a brand new 18.04LTS droplet, configured in Serverpilot, all our Wordpress sites moved (that was an ordeal too, but beyond this tale), it was time to experiment with the install of Ghost on the Serverpilot instance.
One of the quirks of Ghost installs, is that you really need the domain records to be updated and propagated through the DNS realm as it will go and create/install/manage your Let's Encrypt certificates, as you really want to be running over SSL/TLS. Since Digital Ocean manages my name servers, it is fairly quick in propagating, taking far less than the expected 24 - 72 hours, but it is not instantaneous.
However, after a few hours, I was ready to make the move...
The install was smooth, and straightforward. The only quirk was the need to create the .htaccess file with the correct incantation.
I moved all my data and images over and voilá, The PM Dude is up and running.
The look and feel
Since the old theme I used was no longer supported, and didn't work in the 3.x realm of Ghost, I went on the hunt for a snappy theme.
Ghost themes are created with a templating language called Handlebars, a lightweight, yet powerful framework. I am merely a fiddler at the edges, but I can with some degree of confidence make minor alterations to a theme.
The theme I chose (and bought) was called Breek, not having the time to mess around, I just dropped it into the Ghost backend, and moved on. It worked, it was pleasing to the eyes, and I left it there.
Fast forward a few weeks, and I realized that I wanted to do the formal setup. Here is where the Ghost themes are cool (but also more work than the typical Wordpress theme). You unzip it locally, edit the files or stubs, zip it back up, and re-upload it to the site in the backend.
What did I set up yesterday? I resurrected the PM Dude's Disqus account for comments and added it to the system. I removed the advertisement widget on the sidebar. At first I fiddled around with it, but unlike wordpress, it is horribly manual, and a whole bunch of "meh".
I added a twitter feed to the sidebar to replace the banner ad.
I might fiddle with the colors of the elements of the theme. But for now, I am satisfied with the look and feel.
Serverpilot is an awesome tool. It used to be free, but for $5 per server, and $0.50 per "app" per month, it is a no hassle way to build a solid platform for multiple blogs on one host. I can't recommend it enough.
Ghost is not for everybody, if you are truly tech adverse, Wordpress on a hosted platform is the natural choice. But if you like to tinker, and aren't afraid to roll up your sleeves and get dirty, it can be rewarding. It has also become a lot more mature since I put it down the last time. When I have screwed up the permissions (by uploading images), it alerts me and offers a command that will tidy things up. It is smart enough to prevent me from fucking shit up.
Multiple Ghost blogs on one host is now trivial, and painless to execute on. However, the ghost.org documentation is lacking here. Bigly. But do install a swap partition, as NodeJS is a bit of a memory hog...
You can't upgrade in place Ubuntu 14.04 - 18.04. It fails in some interesting ways. Thankfully I had a fresh snapshot and was able to get back up and running in minutes.
Digital Ocean is an amazing hosting company, it is cost competitive, and their support community is overflowing with articles and how to guides. Seriously, you can quickly learn anything, you can spin up a droplet, screw around with it for a few hours/days then destroy it once you have learnt what you need, and it costs peanuts. Digital Ocean + Serverpilot can get you very far without all the overhead and learning curve of a cPanel VPS.