Best way to deploy NextCloud 16 for a Managed Service Provider (multiple clients)?


I already read here some topics about my question, but all where related with “old” NextCloud versions. Now that v16 has been released I wanted to know what is the best way to be a NextCloud Managed Service Provider to multiple clients.

In a simple way, I have multiple clients and each client is a different company. I want to offer them a hosted fully managed NextCloud service. So, to do that do I need one NextCloud installation for each client or can I just buy a big server, make one NextCloud installation and inside that single installation add multiple clients/companies.

Of course, privacy is a major factor and since they are different clients/companies they cannot have access to others files or users.


Hello, and welcome to Nextcloud!

I’m not sure if you found this thread while searching, but it’s still fairly recent, and I don’t think NC16 changes things substantially on this front.

Building separate Nextcloud installations (usually on Docker or similar, behind a shared reverse-proxy) is viable, but not usually worth the duplication of effort. You’re likely going to get similar results by disabling sharing with other groups, so that users from different companies don’t show up in suggestions.

There are a few apps and settings that can’t be changed independently, but that’s the exception rather than the rule, and I’ve yet to come across a show-stopper. Your mileage may vary.

Best of luck to you!

1 Like

that depends on your client needs. or?

if you want to automate your installation:

or on docker

both could be modified to install multiple instances of nextcloud to one server.

and what about kubernetes?


@nqserv and the third one:

Personally I would run different installations in separate containers on one machine. Docker is an obvious choice but I personally prefer Ubuntu’s LXC (i.e. LXD) as it’s as fast as metal whereas Docker has overhead. You can create just one container and clone it so easily using ‘lxc copy …’ that the effort is less than trivial.

Totally agree about LXD. I’ve got a small hosting system that’ll run in as little as 200MB of ram (when using SQLite) and I use LXD for testing the system with some scripts that set up the Ubuntu server system automatically. Adding Nextcloud to any vhost, with it’s own uid:gid, is just a “addnc” script invocation away. Also ideal for those who want a local mail server for Nextcloud in a LXD container on their desktop machine…

Every containerization tech have an overhead. It however may be less noticeable than Docker.

For example just like a “real” solid container takes more resources than it’s contents verses a plastic bag that barely takes up more resources than it’s stored contents.

if his client are only uploading some picture from their mobiles they won’t see the difference between docker and lxc. i guess.

if his client are big corporations, internatiol players, i would still suggest a kubernetes cluster.

@nqserv about what are we talking here?

If you wanted to (and didn’t mind maintaining several Nextcloud instances), you could install Nextcloud in multiple folders or subdomains on the same host. This wouldn’t require any virtualisation, and they could share the same database and memory caching instances.

Yes you are right, but with LXC it is not user noticeable. You have to run analytical tests and take careful measurements. I will change my statement to “almost as fast as bare metal” as I don’t want to create distractionary thread here.

1 Like