Multitenancy support

59 views
Skip to first unread message

Amzar Shahrir

unread,
Apr 9, 2026, 2:29:16 AMApr 9
to Tinode General
Hi,  my team is planning to consider adopting Tinode to replace mongooseIM because of high maintenance cost.

I saw an old fork saying that multitenancy was one of the planned feature but on the latest version it was removed from "Planned" feature but I couldn't find any documentation about multitenancy support in Tinode. How is multitenancy support in Tinode?

For context, we serve a lot of customer and we would like to have shared contacts between domain, basically have different tenants aka user groups. Thanks!

Gene

unread,
Apr 9, 2026, 2:38:57 AMApr 9
to Tinode General
Yes, we dropped the feature from our plans because there was no interest in it from our users. Tinode is pretty lightweight. VMs became cheap and Docker popular. It was more practical to just fire up a separate VM or even a docker container for each customer. 

Amzar Shahrir

unread,
Apr 9, 2026, 2:43:46 AMApr 9
to Tinode General
Ah okay that makes sense. 
We'll attempt to see if we can just spin up multiple dockerised instances of it with Docker Compose.
Thanks for replying!

Gene

unread,
Apr 9, 2026, 2:51:57 AMApr 9
to Tinode General
I would recommend to set up a single instance of nginx as a frontend, and a single MySQL or Postgres as a backend (there will be very light DB traffic).

Amzar Shahrir

unread,
Apr 23, 2026, 2:31:25 AMApr 23
to Tinode General
Hey, sorry for the necro.
I saw this in the API documentation

  • Restricting users to organisations. An immutable tag(s) may be assigned to the user which denotes the organisation the user belongs to. When the user searches for other users or topics, the search can be restricted to always contain the tag. This approach can be used to segment users into organisations with limited visibility into each other.

Theoretically, is it possible to have provide specific tags for users to achieve multitenancy in which users will only see the organization that they have according to the tag?

Gene

unread,
Apr 23, 2026, 9:31:46 AMApr 23
to Tinode General
You can do it. It's not true multitenancy though. Leakage is possible between tenants. Tenants won't be able to find each other through search, but will be able to communicate if they know each other's IDs. There will be no protection against logging in through a wrong domain (i.e. user from OrgA can login using OrgB's domain). User name clashes between tenants are possible.

Amzar Shahrir

unread,
Apr 24, 2026, 12:10:32 AMApr 24
to Tinode General
Ahh i see, agree. Thoughts on using plugins to handle this? Was thinking of using plugins to enforce some form of access control to prevent this.

Gene

unread,
Apr 24, 2026, 12:20:25 AMApr 24
to Tinode General
On Friday, April 24, 2026 at 7:10:32 AM UTC+3 Amzar Shahrir wrote:
Ahh i see, agree. Thoughts on using plugins to handle this? Was thinking of using plugins to enforce some form of access control to prevent this.

You can implement some of the enforcement though plugins but not all. User name and email collisions are still going to happen. I don't see a way to enforce domain separation. 

It seems much simpler and cheaper to run one Tinode instance per customer. Tinode itself is tiny. Have an nginx upfront, a single mysql or postgres instance on the back with one DB per customer, then run one Tinode instance per customer. You don't even need docker or VM for that, just run instances directly in the host on different ports. You can pack a lot of Tinode instances into a single large amazon EC2 instance.  
Reply all
Reply to author
Forward
0 new messages