My experiene on NextCloud | facts for newbies and RFC from experts

I’m here to share a story about my NextCloud journey. Ups & downs and my humble opinion on it. If you are a developer, I hope you read this, give me critical feedback. But I also hope you will learn something from my experience to make the starting approach for the words best piece of software even better.

I installed NextCloud for the first time 2 years back. I was not a linux newbie then nor I am now. But I will also not call myself an expert. I am just able to figure things out when challenges were thrown at me. However, during my first installation, when two clients changed a single folder, my nextcloud started giving me errors of synchronization. I got scared to make the shift from Dropbox.

A year later, I tried NextCloud again. I proudly even shared an account with my colleague too. Then I faced the same problem when he and I tried to work on the same folder. It created some conflict folders even when both of us were not editing the same file simultaneously.

Several months back, I again installed Nextcloud, for the third time. I faced the same issue when I shared an account with the same colleague. But this time, forums I guess had gotton better a hint about the problem existed. the keyword was “lock”. The moment I saw this, I felt “hey wait, Nextcloud is intentionally doing this to protect my folder”. Now I know the error but I needed to learn how to combat this problem, be able to work with my colleague on the same folder, just like we work using Dropbox.

Today, randomly, I found this Nextcloud script. This was a magical script. It mandates a 2GB RAM. This was not said anywhere else except at the last potion of the Nextcloud installation page.
Its follows a different installation procedure. The installation procedure takes MUCH longer, more sophisticated thus I feel it must be much better.


Things work much better. I no longer receive errors when two clients edit the same folder.

My question to the people who like to advice me, why does this script help produce better working NextCloud servers against the easiest method advertised on the NextCloud webpage? How does it help create no conflicts when the folder is edited by two clients.
What I mean by the easiest method is simply downloading the NextCloud tar ball, extract it, make the connections and run NextCloud.

To the developers, I feel advertising this script more will help newcomers like us get more on the working side of Netxtcloud. Be free from difficult scenarios. Why are we recommending non-working methods whilst we have this amazing script at the bottom of the instructions page? What is the reason we use the earlier methods when they have room for the users to “think” nextcloud could not handle errors. I also would appreciate if more experienced people can give me feedback on my thoughts.

One thing I have to mention is that, yes, I did not read the entire 100% of the nextcloud documentation. Its overwhelming, and because I am a student, I cannot afford to put time for it. I simply followed the basic installation instructions i first found on the official NextCloud installation page. I used Amazon EC2, Ubuntu latest instance for all my installations.

1 Like

Just one question: why share accounts?

Sorry I’ll make it clear. he had a different account and I had a different account.

OK.
What does this mean?

Then I faced the same problem when he and I tried to work on the same folder.

Working on the same FILE or FOLDER?
What tools did you use to make the folder accessible to both of you?

Basically my friend had an account on my NextCloud server. And I had a different account. We used two clients. One on his PC and another on my PC. We however edited a single folder. Not a single file. I am very sure about it. He added files to the folder I was working on. But none of the were editing the same files in the shared folder.

We used NextCloud official client. He used the Client for Windows. I used the client for Linux.

However, this problem is addressed when we use the automated script I mentioed earlier to install NextCloud. I can attest to that. I suspect its because it installs cache. What I am trying to say is that, if my experience is what you observe too, then we should no longer recommend the simple installation method because without cache, people will face problems not being able to simultaneously edit the same folder due to “locks”.

Hmmm…
As long as it works…

I use Group Folders for those things.
Don’t use special scripts to install Nextcloud.
And don’t recall having the described problems…

The caching warning is there since v.15
https://docs.nextcloud.com/server/15/admin_manual/configuration_server/security_setup_warnings.html

1 Like

Hi this is not a special script. This script is advertised on the NextCloud official website. So, I feel this is not some untested script. BTW, I started reading the script from cover to cover today morning. Its so well written and it addresses many bugs that the normal installation faces. If you read the script, you will see many.

What I did was I shared a folder that belong to me via username with the other nextCloud account. Is the process different to Group Folders? Do they behave differently?

A plain vanilla Nextcloud install leaves A LOT of warnings when you run security check.
You can Google them one by one and fix…

I understand the script takes care of all those during install .
Probably a faster way to get to the same finish line…

It won’t work for me, I prefer NGINX to Apache…

Thanks Henry!

Is ngix more suited?

Frankly I don’t know.
The right answer would probably be - it depends.
There is definitely no day vs. night difference…

On a completely different project NGINX showed for me better results than Apache.
Hence, I use it whenever this option is available…

1 Like

just google “apache vs. nginx”. you’ll find a lot of technical articles comparing both. i doubt you’ll see any difference with two user on nextcloud.

another point you could discuss about is the database: mysql/mariadb, postgresql or sqlite?

if you want to test yourself: [URL REMOVED - Spam-protection [JK]]

or https://github.com/ReinerNippes/nextcloud/tree/nextcloud-reloaded

on the other hand the easiest way to install nextcloud is “snap”. but snap installations are suited for scenarios where you run nextcloud for thousands of users.

so to provide one how to or a scripted setup won’t be possible.

1 Like

Hi Reiner_Nippes

Do you think the snap package will install cache management such as reddis too? Similar to how the script does stuff?

I thought the script has best functionality and features. Do you know the differences between a snap install of nextCloud and the official script install?

They advertise “appliances” where you can get images (system images, docker, snaps) where you get ready-to-go setups. Problem is, they were done by someone with a certain use case in mind. Depending on your use case they can fit or not. You are perhaps already running a server (with existing services), then you don’t want to change the platform, database server, … The configuration depends also on the use case, …

I agree with you that for a beginner it is hard to see and understand all options with their advantages and disadvantages. The install scripts are completely missing, the NextcloudPi image as well… would be great to have something for that in the documentation.

grafik

i don’t know if the script of daniel will maintain/update your installation if you run it second time. the snap package has a lifecycle and is updated regular.

snap is just a package manager… there is nothing in relation with Nextcloud code inside.
If someone want to seriously use Nextcloud for thousand of users (really ?..) why this guy would install from a package manager without really know and config all himself ? Seriously…
After you will finish to install ond config everything, you should know that Nextcloud community dev team has story time for update Nextcloud without care and inform about any new minor (and also major) version of PHP requirement. It is a very bad practice who push Nextcloud to stay down to very nice toy cloud thing who will break at maybe next update time.
I see also some nice ideas functionalities disapear… like the one to share other cloud storage folders. This is a kind of update regression.
I remember in version 11 i was looking in the source code (i hate php code, but i would like to fix a postgresql access problem) and see how dirty and unsafe was the source code. I then understand what was the real level of the dev team and do advertise about good practice to handle a database by just follow the library best practice they use… correct a code also… I have been confronted with aggressive adolescents of probably 15 years of age.
Well, it is free and just because of that, what ever you are saying, if you not said: “oh, very good…”, you should be categorized as a stupid asshole.
But ok, the official documentation is very good (it was for said something positive).

If this is the case wouldn’t there be at least as many daily CVE’s like with other PHP projects like Drupal, Wordpress and Joomla? Wouldn’t we read about daily breaches of huge Nextcloud installations where really sensitive data is stored (unlike a website that isn’t of much value)?

yes, correct. I’m thinking it is also the fact on many other non free projects. Everything is going so fast and education is falling downer each year in the same time. It may have a link between quality and knowledge and time to learn/apply. Technology is going so fast… who can really follow as quick and good in the same time ? not to much, and this is maybe the problem to deny facts around that.
Now it is difficult to critic anything, we should be “political correct” over the facts and this has a real price. Same for books… how many expensive books exist for specific learning (languages or frameworks) with many error code published and never corrected ?
I t is a kind of new world, from comodor 64 computer time to now, it changed a lot.
I’m still thinking that a free project can be very good, and there is some very good (look at Jellyfin), but it is not possible to going so fast and doing things well for humans (or if it is only possible for one guy in all the team, it is also stupid). So it not just only the money pressure who push people to go so quick and publish new major version every 6 month… there is something crazy deeper around this new-age culture.
By the time, PHP code can be good… i just don’t like this language. It is also an easy access learning curve to this language, but this push some people to thinking they know to coding well because they just see something happening in the screen. This subject is bigger than just Nextcloud project.
In the same time, i’m very happy Nextcloud exist. I’m sure it will become better one day.

It already has. Lots of technical debt gets thrown out with every version, especially 14.

Because setting up Nextcloud in a sane way is not as easy as it might look like. Those scripts are nice, but you should still learn what it does, otherwise you will run into some trouble sooner or later if you don’t know what it does.

I am learning a lot from those scripts. Learning then part by part and applying changes on my own to my next cloud.

As a newbie to nextcloud family, I do not like the idea of snap. It severely hinders my learning process. But I love the scripts. Making those changes one by one. Boy, that’s fun! I feel like I’m learning directly from the experts who designed those scripts.

Btw, tody I pushed my nextcloud to my 30Gb RAM office PC via reverse proxied Apache via wireguard.

Performance is amaizing. It saves me lots ofEBS costs on Amazon. Now I just have the cheapest ec2 but my nextcloud runs on an almost super computer for free at my office, doing encrypted restic backups to wsabi S3. I did this in 3 weeks as a newbie. I look forward to many years of learning through nextcloud. Not to forget, screw Dropbox!

@isuru This script you show is just a script to be use from a kind of debian like or ubuntu distro. For example, on my archlinux or from my FreeBSD one, it should not works.
sed just use s/// regex to remove a comment # in from of a specific line… for an ipv6 address with a mask (the /96)
Then it check if curl is installed and if not, it will install it.
After that, curl goes to find and execute ("."in front is same as syntax: “source”) an other on shell script (bash or sh or… who know ? i think it can only be sh or bash). This one we don’t see what it is inside…
but you can just download it and look inside what it does.
The best way is to NOT use snap and NOT use a script you don’t understand what it does.

@alfred, yes, it is true… i hope for the next to not have to be confronted to a kind of crazy “forced to upgrade a full system libraries” because of lake of information as it happened already. In my opinion it is the critical point for the dev community to care about.