Using Nextcloud as an accessible cloud storage for multiple users, without fully syncing

I have no support/technical question and have seen the support category. (Be aware that direct support questions will be deleted.)

on

Which general topic do you have

Hi,

I’m working with a situation where I thought Nextcloud could be the solution, but I may be off the mark. Here’s the scenario:

3-5 people are working remotely on different aspects of a project, usually on multiple platforms. Each person’s specific project folders are automatically uploaded to Nextcloud so that the others can access if necessary. If person X needed to access person Y’s current project folder, it would be downloaded and worked on locally, and then set to upload the latest into X’s folder on Nextcloud.

The issue I’m running into is the synced folders can’t be set to unidirectional (local to cloud). Most of the time this comes up in topics as “Nextcloud is not a backup service,” which is not what I’m trying to accomplish. What I can’t have happen is for the Nextcloud server have an issue and delete all the local files, so keeping the local machine safe from that possibility is the priority.

The goal is to have the absolute latest version of each individual project folder available to everybody, without requiring any more legwork than setting the initial folder upload whenever a new project is started with some sort of GUI. The people using this are not the most tech-equipped and I can’t be presenting anybody with a CLI, they just won’t use it. Apps like Duplicati look good, but they don’t upload in a native format, which would add an additional layer of unnecessary complication. I’ve searched to death and can’t find anything that’s going to work quite this way. I thought something like Cyberduck would work but there’s no automation available. Freefilesync can’t upload to Nextcloud without running from the CLI, as far as I can tell.

Is something like this possible with Nextcloud? If not, I’d be thankful for anybody’s suggestions.

If it is some sort of text-based files, git might be a good solution. There you have a lot of tools available to check for difference, do pull requests etc.

In Nextcloud, you could share the folders between the users and give only read permissions, so they cannot write back changes they did. However, it then won’t automatically synced to your own folder structure (not exactly sure, if that ends up as a conflict file, …). Depending on that, you could think of running a script regularly in the background, but this would mess up if the last opened document history … and might have other pitfalls as well.

If these are office documents, there might be some features in the online office solutions.

If only it was just text… it’s a bunch of different multimedia filetypes (audio, video, project files, etc). Which is why the native format is important- it has to be possible to easily send the files to somebody who needs them without any additional installation.

How about:

  • have each user sync their work directory(s) using Nextcloud
  • run rsync serverside to one-way sync change in each users’ own directory to a shared directory
  • crontab occ files:scan regularly on this shared folder

Would that come anywhere near your goal?

At the moment they manage this by …

  • sometimes making a copy of each others work, risking out of date versions?
  • sending each other a chat message, asking them to mail the most current file, without having a central repository?

This is how it is now, which as you can guess is inefficient (and if somebody is away from their computer, impossible to do).

That actually does make sense, thank you. I would like to see Nextcloud incorporate the original idea of a one way sync (seeing as there looks to be absolutely no other products available that can do it at scale), but doing it inside of Nextcloud seems workable. The data sizes shouldn’t be overwhelming even when doubling up so I’ll test that out.

I don’t think it is possible and IMO it also doesn’t make sense.

once the above scenario complete you end up with 2 versions of the document and manual step is required to sync them (how should Y know X changed the doc and what is about Z - which version should Z use? - and how should Z know there is updated version of Y’s document in X folder?) I don’t this your approach would really help - it would simplify file exchange but the overall situation remain the same - people keep creating new document version which are not connected and exist in different locations.

Assuming a server is less reliable than the client sounds strange for me. I would review your operational procedures… it’s is much easier to operate, backup and monitor one server than many clients. and once you have proper backup procedures in place you will automatically ensure the data is never lost.

There is git-annex that could manage other file types than text more efficiently with a git-like experience. Not sure how well it works with managing different versions by different people. Could be interesting to include this perhaps as special external storage for Nextcloud?

Having the read-only is nice if you just keep the original, and others can just have their own independent versions (without merging).

Yeah the essential issue is that the files must be loaded and worked on locally. It’s an unfortunate limitation, it would be great to work off the server. Alas!

It will require communication any time that happens, which is fine and normal since everybody will be talking already. Ideally this doesn’t happen very often, and yes when it does it’ll require some manually movement of files on the server, but the alternative (everyone remembers to upload their projects hourly or whatever) is much worse.

Certainly looks interesting, will have a look.

this is exactly the point of the desktop client - the file is uploaded to the server as soon it is modified locally and server has the most recent copy and keeps track of previous file versions (depending files_versions settings). as long there no strange drawbacks like huge files or versions very frequently changed it works well, especially if you utilize notify_push sync is almost instant.