Help Needed: Configuring Rocket.Chat for Multi-Tenant Setup

Hello Everyone,

I’m relatively new to Rocket.Chat and have been exploring its capabilities. I’m currently working on a project where I’d like to set up Rocket. I could use some direction to make sure I’m headed in the right direction when it comes to chat in a multi-tenant setup.

The situation I’m working with is as follows:

Goal: I’m configuring a single instance of Rocket.Chat to support several organizations, each of which needs its own separate channels, users, and permissions.
Requirements: To protect privacy, every organization should have a unique user database, branded login page, and access controls.
Infrastructure: Ubuntu 22.04, Docker, and MongoDB will be installed on a VPS with enough resources to host the instance.

I’ve read the forums and documentation, but I still have a few questions:

Isolate Organizations: Is total tenant isolation supported natively by Rocket.Chat? If not, is there a suggested workaround, or would spinning up distinct instances for every organization be the only option? :thinking:
Custom Branding: Within a single Rocket.Chat instance, is it possible to set up distinct login pages or themes for every organization? :thinking:
User Management: Is it possible to automate role assignments and user onboarding for various tenants using extensions or suggested tools? :thinking:
Performance Advice: What are the best ways to maximize performance in a multi-tenant setting where each tenant may have more than 1,000 users? :thinking:

Any tips, settings, or plugins you could recommend to improve the effectiveness and scalability of this setup would be greatly appreciated.

Thanks in advance for your help and support.

Regards
Jesicagcp

In short, it won’t work like this.

You could run multiple instances against the same Mongo DB each with its own collection.

That’s about it.

Pay close attention to the current licence requirements etc.

Yup but you will need some form of licence to do custom theming etc depending on the user numbers.

Yup - mentions it in the docs with LDAP/SAML/AD integration etc.

What are the best ways to maximize performance in a multi-tenant setting where each tenant may have more than 1,000 users?

Multiple DBs with replicasets - possibly distributed Rocket instances - but you should be looking at EE for this sort of thing as it has optimised code for higher user numbers.

I really suggest you look at a partnership with Rocket. You will get help and advice the whole way through.

https://www.rocket.chat/partners