Looking forward, it would make sense to allow users to have their own sub-cloud. Stick with me:
Discord uses the word server flippantly, because users are not actually on servers at all… instead they live within any number of independent, virtual instances… be it 2 or 400.
Looking into a deeper future for our servers, Nextcloud could begin to offer tight knit Nextcloud instances.
What does this Instance mean?
We have circles, collectives, groups… but all users within a particular server are still inter-connecteded when they might not want to be.
Zakir, Joe, Sally know each other through Volleyball
Zakir, Jean, Gabie know each other through Book Club
Jean and Gabie strongly dislike Joe and Sally because they used to date each other.
Zakir, mom, dad, brother, sister, grandmother
the entire family is very private and judgemental.
All of these people have been added to Zakir’s Nextcloud, but they do not want to explicitly interact with each other. So, Zakir sub-divides his Nextcloud into multiple instances within https://zakir.cloud…
Volleyball player instance for calendar, contacts, tasks, photos, deck, collectives
Book Club instance for calendar, contacts, tasks, photos, deck, collectives
Zakir’s personal instance no one else has access to
Family instance for group folders, recipes, calendar.
Instances are a way to segregate these sub-clouds, by ensuring the users of one will not have access to the data of users outside their particular instance.
Instances could even one day federate through the overall Nextcloud server to make even larger, distributed instances amongst any number of Nextcloud servers.
Thanks for reading! Science fiction lesson concluded.
My thought is that any “instances” would still reside within the same server.
Same domain cloud.zakir.url
It is the principal of being a part of Volleyball, while wanting nothing to do with Book club
Users of one will never encounter users of the other even though they are on the same server. They won’t be able to find their contact info or full text search for them or see what these other people have been up to.
A lot of this functionality exists in pieces, but it is not nearly this clear in execution.
How do I allow groups of users to exist on my server in total segregation from everyone else on that server?
Can’t you just do this with groups already? You have options that auto-completion is only done within people of the same groups and you can restrict sharing also just for users within the same group (probably not possible for all apps). So your people not liking each other don’t see each other.
And you chose what you share with others. And if that is not enough, you can set up 4 different Nextclouds, those who want can share via federated sharing between the instances.
My thought as well. You’d need to have four different Nextclouds, so wondering if there is an in-between on a singular server.
Federation sharing is so weak that it doesn’t make sense. Plus, it has effectively zero support within any existing apps apart from minimal support in Files. If you used federation, you’d still not be addressing this idea.
For folks following along, the “Restrict users to only share with users in their groups” option enables the biggest chunk of this functionality - keeping unrelated users effectively invisible to each-other on the same instance.
Having apps be visible only to certain groups is also possible (with a few exceptions), so your Volleyball, Book Club and Family groups can all have slightly different experiences. With a little tweaking, you can even change which app opens first, though perhaps not on a per-group basis…
I think this one’s answered but would be nice to be a little simpler to set up. I think the real question is: what’s the desired behavior for Zakir’s account(s)? Should they be separate per-instance, or should Zakir be able to interact with all the groups from the same account? If the former, then absolutely, set up 4 instances. If the latter, what we have is good with room for improvement.
I also think that groups are the right way to go for these usecases. However, the group functionality certainly has room for improvement but I think they should add the appropriate functionality there and probably integrate it even better to the core, instead of introducing a completely new concept.
Small side note:
If this is about offering Nextcloud as a hosted service, then you definitley should work with VMs or maybe Linux conatainers and offer your customers fully-fledged instances, instead of just accounts. Or you could develop something yourself to manage your users and instances. I don’t think that such use cases should have priority for the Nextcloud developers, unless the “customer” who wants to offer such a service pays for it in one way or another. Just saying.
For me it definitely sounds like really good use case to move NC into maturity: given the fact (from my understanding) groups and circles address same goal but groups are “admin administered” and circles are “user self-service”: if all apps would follow/adopt groups and/or circles approach you could easily adopt your idea using groups or circles…
Groups. Nextcloud can be configured to isolate users into their separate groups and never encounter each other.
Instances. You can set up several instances of nextcloud on a single server, each within its own path or subdomain.
Groups is probably the best approach, since you have some common users. Zakir would be a member of all the different groups. Joe and Sally would be within the volleyball group, etc.
You can configure user/group isolation in Settings → Administration → Sharing
Use settings like “Restrict users to only share with users in their groups” and “Allow username autocompletion to users within the same groups”.
That would pretty effectively restrict users from communicating with users who are not in a common group.