Self-hosting multiple Ghost sites on a single DigitalOcean droplet?

Does anybody have advice or a link to a tutorial regarding hosting multiple Ghost sites on a single DigitalOcean droplet?

I’m currently running a dozen Ghost sites, with each on a separate droplet. I use the official Ghost install on the DigitalOcean marketplace whenever creating a new Ghost site. It makes the initial setup a breeze.

But the cost of running multiple droplets really adds up. So I’m wondering whether I can host all of these sites on a single (larger) droplet? Preferably, without too much hassle :grimacing: I’ve heard of terms like “containerization” but my experience with server admin or infrastructure is not at an advanced level.

Any advice, links or recommendations would be greatly appreciated.

1 Like

I do. Check my two posts:

2 Likes

@DonaldH, what solution did you come up with in hosting email accounts for each of your 12 Ghost websites? Or do you use a 3rd party for sending/receiving email?

Thanks!

I work in hosting professionally and also host multiple Ghost blogs on the same server.

While there is a simplicity to “one blog per droplet”, you are right notice that the cost adds up that way.

When you run multiple blogs on the same host, you benefit from them sharing the same memory and CPU. While they both need some dedicated resources, they may need to spike their CPU or memory at different times, and they can definitely share the same MySQL server, each with a unique database.

As @ahmadajmi points out in his blog post, the simplest approach in terms of upfront setup is run the Ghost CLI installer more than once and have them share the same MySQL database.

I’m currently using an approach that uses more advanced server management skills, but also some additional benefits.

I’m using Ansible to automate setting up mulitple blogs, and then running them in containers on the host.

  • Using Ansible, I can define shared configuration that applies to all my Ghost instances, and then only define the override differences for blog. For example, they all share the same MySQL connection details.
  • Upgrades will now be faster a new version of Ghost is only downloaded once as a container image and then shared. With the Ghost CLI, a new copy of Ghost is downloaded for every blog.
  • Using systemd resource control directives, I can set limits on how much memory is allocated to each individual blog, as well as all blogs taken together-- I need to make sure some memory remains dedicated to MySQL as well.

You missed my question about email. Also, are you allowed to give out your hosting business website on this forum?

Hosting/receiving email is different than sending and may use different providers and does not need to be related to website hosting provider at all.

If want to simply receive email at a domain and forward it, a domain registrar like Namecheap will do that for free, or cheap.

To actually host email, Fastmail is good and reasonably priced.

To send bulk mail, you currently need to use Mailgun, which has a free tier.

I used to have my own hosting company, but now I manage hosting for a firm and am not for hire.

I recommend Ghost Pro if you want managed hosting.