So far my experience with Nextcloud has been that it is a pain in the arse to install, and once it’s installed is slow as anything. Literally couldn’t run it on my pi 3b, now got it up and running pretty nicely on a NUC but it’s still not great. Have caching set up.
I have the notes app installed on my android phone and I can never used rich text editing because it gives timeout error.
This shouldn’t be this complicated. All I want is to de-Google my documents and notes, and self-host my kanban. I don’t really need the rest though it’s nice to have the options.
Do people use alternatives? Am I doing something completely wrong? I set it up using nginx which I know is not supported, but the alternative using Docker AIO didn’t allow me to use custom port easily.
I suspect nextcloud having performance issues with slow Disk IO. With rootless containers I had a much worse performance than rootfull. Also using MySQL Backend instead of SQLite did speedup the performance.
Nevertheless I have the same problems with nextcloud as you stated. Pretty much not as usable as I thought.
It’s on a SATA drive, albeit hard drive not ssd and I’m using mariadb. Everybody seems to suggest I need a beefier server but as a developer myself, the functionality of the software doesn’t seem to warrant anything more powerful.
Software config optimizations help a little bit but my biggest improvement was moving the DB to SSD. Spinning disks are great for capacity but not for DB performance. Random I/O is a big factor for them and those drives drop in performance so fast for that type of I/O due to physically spinning media.
I started out using Owncloud and later switched to Nextcloud once that fork was stable. For all my uses it has always needed beefy hardware to run well but I definitely have way more junk files in synced folders than I should & rarely clean things up.
Try moving the database at least on a SSD, and enable Redis caching.
How much memory? I think nextcloud wants around 8gb to run happily (ymmv). I’ve tried it with smaller sizes and ran into issues.
Yes I have 8gb of ram, but it seems insane that it needs that much considering what it is doing.
I have had it run with less, but it does a lot of image processing when you upload photos that I think needs more or something. I’ve never really taken the time to dig into what it’s doing. Could be some aggressive caching as well.
As a developer myself, where did it go wrong?
I’m not sure it’s going “wrong”. It depends on the scenarios it’s designed for. If they intend it to be run on servers (there is no class of raspberry pi that is a server) then you design it to take advantage of those resources.
But it’s designed for selfhosting and consumes all that without doing much.
I didn’t mean to imply it needed server hardware. You can absolutely self-host Nextcloud. But RPIs are the absolutely lowest-end of hardware for serving duties. They’re great little systems but they’re designed to be cheap, not performant.
I self-host currently on a VM running on a 12 year old x86 system with 8GB RAM and with the Nextcloud file storage going over a 1Gbps NFS mount. Not exactly a high-end setup. And it performs just fine. I was previously running on a AWS EC2 instance where I noticed occasional issues running on a T4g.SMALL. (only 2GB RAM). I had to bump up to a MEDIUM at some point though.
It worked with less RAM pretty fine for a long time. But as I increased usage it would have issues occasionally. I think with all the images I have it was doing lots of processing for thumbnails and the like. I never really dove into it to see what exactly was going on though…
But still - a moderately old desktop system with 4-8G of RAM is just fine for “self-hosting”.
EDIT: I should add - I’m also hosting MariaDB on the same server - also with its data stored on an NFS share.