Does discourse hosting use docker for all customer instances?

Curious, does discourse use docker for each and every hosted customer? i.e. docker runs the discourse and the database etc?

Or do you have a shared database server where each customer has their own database?

If you run each customer using docker, what do you use to manage/orchestrate all of this??

If there is a blog post those goes into the details that would be very interesting to read.

The details vary a lot based on the hosting tier, but yes we do use docker everywhere. You might be interested in these topics which describe some of the techniques we lean on:


I’ve done docker based installations with traefik, ecs, nginx-proxy, docker-compose, and haproxy (what cdck uses).

Usually it involves building an image with launcher.

I was interested to know how you manage all these servers with docker. For example, when a new customer signs up, how do you spin off a new server etc. You need something to orchestrate all these servers running docker, and manage updates etc.

I have an ansible playbook that handles spinning up the stuff a new site needs (e.g., redis), updates the yml file (like if a plugin or setting is changed in my config file), bootstraps the image, launches the image, does post migrations after launch, and so on. uses (most of) the same scripts to manage installations and upgrades on standard installs.

Yes, almost all our hosting services are run in containers.

With thousands of customers come thousands of databases :smile:

Now that you mention, it’s been a while since we blogged about our hosting tidbits on our blog.

Nowadays we use a combination of Puppet and Nomad to do orchestration.

We should follow up on this @stella :memo:


That would be great,thanks for the insights!

1 Like