agarbato / unicloud

Unison file sync web interface
MIT License
66 stars 5 forks source link

multi-user support #38

Closed alpianon closed 1 year ago

alpianon commented 1 year ago

Hi, I just happened to find this project, which is something that I looked for for years!

I tested many OSS private cloud solutions, but the only really solution that I found that works well even at scale (Seafile) has issues, in perspective (issues that do not concern the software as such, but how the project is managed and where it is currently going).

Before that I extensively used Unison, but I had to change because a needed a multi-user cloud platform.

Do you think it would be possible to implement a multi-user environment in Unicloud, maybe just by leveraging filesystem ACL in linux?

agarbato commented 1 year ago

Hi @alpianon ,

When you say a multi-user environment can you expand a bit? What would you like to achieve exactly?

The way unicloud is done today is pretty simple, one client (a docker container) creates a unison profile which can only sync with one replica (a share server side).

If your intention is to have one client sync multiple replicas, I thought about it in the past but it would require to change a lot of things on the code and I decided it was not worth it, simply because you can just add another client(docker) with zero effort, resource usage footprint is also very small.

Thanks Andrea

alpianon commented 1 year ago

for "multi-user environment" I mean that different shares may be owned by different users, who may decide which other users may have read|write access and therefore be able to sync them. So the idea is to have multiple clients syncing one replica, but what they can sync is constrained by some ACL

agarbato commented 1 year ago

Sorry for late reply. The idea behind unicloud is to have a central server which also act as api and auth server. When you enable a client on unicloud ssh keys are exchanged and a unison profile is created to sync a specific share, This is what makes the communication possible. Managing multiple users and file permission in docker can be complicated and not portable.