I have been using the Ghost Node.JS CMS for some time now.  

It is a fantastic publishing platform for publishers and is only getting better and better with each released update.

In fact this site uses Ghost. Looks great doesn't it?

If you wish to host Ghost yourself, one of the best hosts around is Digital Ocean.

Digital Ocean
Click the link and get $100 free to have a play with Digital Ocean. What's not to like?

Digital Ocean offer a one-click installation for Ghost which takes the pain out of server set-up.

One thing that bothered me was by using the one-click install from Digital Ocean, it meant that I would need a new droplet for each Ghost installation I wanted to set-up.

As you can imagine, even using their cheapest droplet at $5 per month, that could soon add up to some serious wonga over a year with multiple Ghost sites.

There were several tutorials on the web on how to host multiple Ghost blogs on one server/droplet, but the tutorials I found were quite dated and not for the latest Ghost Image on Digital Ocean.

After some trial and error and several Columbian Dark Roast cappuccinos later, I finally got my head in the game and figured out how to add multiple Ghost installations on one droplet.

DigitalOcean – $100 Free
Helping millions of developers easily build, test, manage, and scale applications of any size – faster than ever before.
Click the link and get $100 free to have a play with Digital Ocean. What's not to like?

So, without further ado, if you want to do the same and have already set-up one installation of Ghost using Digital Ocean's one-click Ghost installation, read on...

  1. Get a new domain and point it at your droplet
  2. Login to your droplet's console and run the following from terminal
sudo -i -u ghost-mgr
cd /var/www
sudo mkdir yourdomain.com
sudo chown ghost-mgr:ghost-mgr ./yourdomain.com
cd yourdomain.com

3. At some point later on you will need your mysql password for root.

sudo cat /root/.digitalocean_password

The above command will return your initial mysql root password, make a note of it. (unless you have already manually changed it)


4. Run the following in terminal to start the Ghost installation

ghost install

5. After a while it will download and set-up the Ghost installation and ask you some questions

Ghost CMS Installation
Full installation process

You should answer as follows:

  • Enter your blog URL: (e.g. http: //yourdomain .com) obviously without the spaces and use your own domain ☺
  • Enter your MySQL hostname: simply accept the default localhost
  • Enter your MySQL username: simply accept the default root
  • Enter your MySQL password: you obatined this earlier
  • Enter your Ghost database name: simply accept the default unless you want to change it

Ghost will do a little more set-up and then ask you some more questions:

  • Do you wish to set up "ghost" mysql user? enter y for Yes Don't worry if this is rejected/skipped as you already have a ghost mysql user set up from when your installed the first ghost site.
  • Do you wish to set up Nginx? enter y for Yes

Ghost will do a little more set-up and then ask you some more questions:

  • Do you wish to set up SSL? enter y for Yes unless you don’t want SSL.
  • Enter your email (for SSL certificates): enter your email address you will not get this question if you answered No to the previous question.

Ghost will set-up the SSL certificate using Let's Encrpyt, unless you asked it not to. Some final questions:

  • Do you wish to set up Systemd? enter y for Yes
  • Do you want to start Ghost? enter y for Yes

Ghost will now finalise set up and you are good to go.

Simply enter the following in terminal to list your Ghost sites.

ghost ls
Ghost List Installed Sites

If like me you mistakenly entered your blog URL without https you can simply enter the following in terminal to add the correct URL:

ghost config url https://yourdomain.com
ghost restart

Voila! You are all done, you should now pat yourself on the back.

Wasn't too difficult was it ☺