Does discourse hosting use docker for all customer instances?

AI-generated summary

The discussion explores how Discourse hosting uses Docker for customer instances. rubydoob asks whether each customer runs in a Docker container with its own database or if there’s a shared database setup. david confirms Docker is used across hosting tiers and references relevant meta posts. pfaffman shares experience with Docker orchestration tools like Traefik and Ansible for managing deployments. Falco clarifies that most hosting services run in containers, with each customer having its own database, and mentions current orchestration uses Puppet and Nomad, suggesting a blog post on the topic would be valuable. rubydoob thanks the contributors for the insights.

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.

https://dashboard.literatecomputing.com/ 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!