"Multi Instance SuiteCRM"

A very cool and awesome feature would be if you could have a “ Multi SuiteCRM ” instance version where you could host unlimited amounts of CRM system instances within one install.

That would be extremely useful for sales and marketing agencies for example like mine where you could create a new instance for every new customer without the need to create a new installation for each customer. That would have many benefits for sure.

Pretty much the same principles just like for example WordPress Multisite where you can create unlimited amounts of blogs/sites within one install…

As of now we’re just creating new free instances for our customers at hub-spot which works fine too, but its quite messy to keep track of.

It would be even better if you could host everything in-house for the sake of guaranteeing customer data integrity and safety etc, plus by having the ability to run multiple virtual instances in one install makes if much more easier for the IT-department in terms of maintenance and administration and increases security too and makes it easier to keep the installation/system safe, (Because you do not have to keep track and maintain, update multiple installed instances, but only one single installation on your server).

Heck, even though free is nice an very appreciated… If SuiteCRM made a required paid version of that (Multi instance SuiteCRM); we would happily pay for that feature to have it on-premise/on our on own servers.

Kind regards
PowerQuest

1 Like

Thanks for moving this out :+1:

1 Like

I am not convinced that putting the data of different companies in a single instance is a best-practice. It’s always going to be tricky and you risk “leaking” data, or simply options and implementation details, from one to the other.

I also don’t think it’s really necessary. Nowadays you can have very “thin” instances in Docker, you can set them up with a click of a button, you can move code around in bits and merge as appropriate, with git. I think it’s just a matter of working on your processes, your instance management.

I do concede that Docker and git are not easy technologies. They can be confusing and they have a learning curve. But if you set things up in a lab and test them and try different things, you can reach nice “recipes” that just work and become simple to use, even if they did take a big effort to create.

1 Like

Hi @pgr
I would argue It’s way easier and gives a way better overview of just managing one installations v.s. loads of single install installations both in terms of management and security. I think It makes total sense to be able as a administrator to have a full 360 view of the system this way and have more control over your server/CRM system.

Having multiple installations with each its own root directory , security/file permission and database settings is a way more messy (management nightmare), and will never prove you with an easy 360 view over what is going on your system/server. In the ned of the day you want also as a It-administrator have have easy way of managing this and a “ Multi SuiteCRM ” instance version would provide this functionality where you could also from the “super admin” module (borrowing the “Super Admin” term from WordPress) create, disable, enable and mange all active instances and all users. That is a way better model and also worth paying for in my humble opinion.

I understand the reasons for your preference (though I would still prefer otherwise).

But let me put it in a different way - SuiteCRM was not designed for that, and now I think it is too late. It would be a gigantic project to turn SuiteCRM into multi-instance in a way that is secure and respects each installations preferences/customizations.

And to do that, and keep backwards-compatibility (older add-ons, custom code still working) is virtually impossible.

You’re right that people would pay for this. So the fact that nobody’s attempting it corroborates my hesitations…

I do concede that Docker and git are not easy technologies. hey can be confusing and they have a learning curve.

Well that’s the thing. You want SuiteCRM to not have the nerd stamp and instead appeal to everyone as an easy to manage system without having to be a super techie person.
By making the system easy and user friendly to manage it will attract more people and organisations will also use it because of exactly that reason= its easy to manage and use.

Maybe because most CRM systems isn’t open source is the main reason… :thinking:
and since it is not available anywhere yet then you can’t see the demand either.

This is really a double-edged sword. On one hand, it would be a lot easier to maintain just one installation instead of many, but on the other, that also means that if an update breaks things or someone manages to break in, you’re in the deep end with all of your clients and their data. There is also the problem of customizations: you wouldn’t be able to do a lot of customizing per-client (or well, you probably could, but doing client-based customizations would presumably be a nightmare to debug and/or develop in the first place).

Considering how big an effort v8 is I don’t think it would be completely impossible to take on the multi-client challenge, but I don’t think that would be a good investment of resources. As @pgr said workflow can be streamlined so that hosting multiple instances is an endurable task, and I’d assume that clients would prefer their data separated from others.

This is an interesting concept though. I’m thinking outsourced call centers and other service or sales functions that are probably handing data for multiple companies at the same time. Even in that case I’d probably just reinforce each module with fields to choose the client in question and then distinguish integrations or client access by that field instead of a real multi instance setup.

Well hosting companies too I guess?
In my case for example… My company is in sales too and we are hosting CRM instances for clients when they want us to run their marketing/sales project on separate CRM instance and for whatever reason do not allow us to directly work in their internal CRM.

I think the way forward for people desiring to have multi-instance CRM with SuiteCRM in 2024 is to script the installation, and other deployment processes.

Of course, that won’t really be multi-instance, it will just be “easy-new-instance”. But it’s a much easier project, with much lower risk, and the technologies are there for it, with containers and git etc.

So how do you script an instance so you have installation package for easy deployments?

That’s totally out of scope and would take me a long time to develop (not just explain). :sweat_smile:

But you basically put the installation commands into a bash script. Or a Dockerfile, if that’s your thing.

There are several threads here in the forums with bits and scraps of such scripts.

1 Like

Right. Thanks I get the concept. It just to advanced coding for me, at this point. I wish I had more time so I could learn to code more and better. :wink:
But there is only 24 hours each day and you need to pick your battles, right?

1 Like

@PowerQuest
Engineering-wise - Docker is exactly the right tool to do multi-server for anything, not just SuiteCRM.

there is only 24 hours each day and you need to pick your battles, right?

For you- that is EXACTLY the reason why you or someone in your team would benefit to spend 10 or 40 hours learning docker.
Online search says
Docker is an extremely popular tool in the developer community—according to the StackOverflow 2022 survey, it is the most widely used tool among professional developers.

Your time will be saved, and future client frustration too:

  • for the rest of your career - you’ve save an hour every couple of months
  • you’ll save 4 or more hours each time one client only has a weird problem : because you can be 100% sure that it is not caused by another client’s config/usage.
  • 10’s of hours saved - because you will never have to clean up and pacify an angry client after they saw ANOTHER client’s data due to a bug in code
  • many hours - when a client’s own logins are hacked/ mis-used by a former member of staff: your Docker Snapshots your scripts took weekly/daily allows a very fast ‘working again mode’
  • Hours every time you roll out upgrades: do 1 client first: wait a week than with simple file copy scripts: upgrade a few more / or all
  • when a client has concerns about their data: deleted / slow/ wanting to download some to integrate into other systems etc - you can give them MySQL access to ONLY their docker mysql.
  • when a client says ‘It’s too slow’: you can in minutes test if it can be solved with hardware CPU/RAM: because Docker allows you to control how much is allocated to each client’s Container
  • when a client doesn’t believe you that the slowness is not a hardware problem! (clients eh!) - tell them to set a a Docker container space on THEIR OWN hardware. And in 15 minutes copy to it, and silence their complaints!

An analogy to repairing cars for other people:
In the same way that an amateur guy can repair their own car with just a bunch of socket sets and spanners. But if they start to charge other people money to fix their cars: then it’s time to buy a $500 or $1000 ‘Diagnostic Computer’ and invest the time to learn to use it. Otherwise it’s only a matter of time, before they have unhappy customers because they charged too much: hours spent that didn’t fix the problem the car have.

I’m being very direct here - but purely out of engineering desire to help you achieve the most that you can.

Your customers will one day be unhappy when they discover you are not using Docker, and as a result problems on their site take longer to fix.

2 Likes

Thank you very much for sharing this information. It is appreciated.
I will check it out for sure.

Kind regards