Multi-site / tenant support


I setup a Tutor install on AWS using guide here :

I’m now looking at adding multi-site/config to this setup. I’m not clear how being inside Tutor impacts how Open Ed X works / gets setup? I’m referring to the basic info found here.

From my understanding the Tutor quick start script creates a single site for you based on your inputs. However when I look under the Django admin pages then I see a single entry for example…com (which doesn’t match my domain), and nothing under the site config settings.

Can I just create new sites and configure as for vanilla Open Ed X install, and if so how does the domain / port resolution work - given there are multiple LMS/Studio etc domains?
o I need to add some of this info to the Tutor config?

Any general guidance would be a great help !



1 Like

Hi @Rickety,
Tutor does not support multiple Open edX sites. To be honest, I always considered that multiple sites are a terrible practice: they were created because it’s always been difficult to launch multiple platforms on a single server – that is, until Tutor appeared. With Tutor, it’s now possible to launch multiple platforms side by side on the same server: Thus, multi-site installs do not make much sense anymore, in my opinion.


Thanks for the clarification, appreciate those points. I’ll bare them in mind.

Hi @regis. I would like to ask you that if I have 1000 clients and each of them have their own LMS and CMS. So it will require 1000 edx platforms on single server. Can tutor sustain this?

Sure, Tutor can handle this no problem. The real question is: can your server handle it? Bear in mind that you’ll need ~8Gb per client. I strongly suggest you dedicate a single server per client.

1 Like

Thanks for your clarification @regis . It really make sense to deploy each customer on separate servers.

In the use case of a e-learning business or for a SAAS provider, how to workout? Consider there are many small trainers / instructors who may have little audience.

I know this question should be posted to edx community to be more appropriate. Asked here out of my curiosity.

In other way, can we conclude that Open edX is not a right candidate to be deployed as a SAAS service?

1 Like

You should setup a common MySQL, MongoDB and Elasticsearch cluster so as to minimize hosting costs. Once these three components are migrated to a separate cluster, running the web servers themselves should require much less resources. (maybe ~3-4 Gb)

If you are serious about deploying Open edX as a SaaS service, then I woudl strongly recommend relying on a more powerful deployment solution than docker-compose. You’re in luck, as Tutor supports Kubernetes deployment out of the box :slight_smile:

Tutor is a very good fit for SaaS providers, and some Open edX providers actually run Tutor under the hood. But you must understand that SaaS providers are power users, so you will almost certainly have to customize Tutor (via plugins) to get it to work the way you want.


Hi @regis how to achieve support for multiple tenancy in elasticsearch. With the current version of 1.5 is there any way to support multiple tenants in same elasticsearch server? For MySQL, MongoDB I can create multiple databases per tenant. Is there any way to specify some prefix to the indexes etc…?

1 Like

Would and how would you modify the caddy file to accept multiple sites in a tutor instance?

I understand the documentation says to run a proxy server in front of the nginx system but as caddy can be configured as a web proxy…


@kesavkolla one way to achieve this is to use separate index for different instances. For discovery plugin, the index name can be configured; for edx-platform(lms/cms), the index name is fixed, therefore you need to do customization.

I’m closing this very old topic now. Please write a new one if you have further questions about multi-tenancy.