I wish there were an alternative in a sane programming language that I could actually contribute to. For some reason PHP is extremely sparse in its logging and errors mostly only pop up on the frontend. Having to debug errors after an update and following some guide to edit a file in the live env that sets a debugging variable, puts the system in maintenance mode and stores additional state in the DB is scary.
Plus PHP is so friggin slow. Nextcloud takes noticeable time to load nearly anything. Even instances hosted by pros that only host nextcloud are just slow.
You could check out Frappe Drive (and Frappe, the framework it’s built on, it’s pretty awesome). They aren’t accepting contributions at the moment but I’m sure that’ll change once it’s out of beta like with the other frappe apps. There’s also Raven messenger also built on Frappe and you can use the two together (but without any real integration between the two yet, but that’s on the roadmap on the Raven side).
I’ve spent a lot of time researching alternatives and NextCloud is the only one that does everything it does in one place. I’ve dug into the code a lot to find places to make it work faster and came out confused and mostly empty. It’s also federated, and I think it’s the only FOSS file sharing platform that is. It’'s a very mature application so you’ll be hard pressed to find features that are missing, but also to find things that could be further optimized without ripping out major chunks of the application which are likely interconnected with other major chunks of the application. For my personal use NextCloud instance I’ve resorted to just completely deleting the database and installing everything fresh between major versions, then just rescanning my local folder.
Hey, may I ask you a question? I really want to use Frappe Drive, but the thing is that I sort of need webdav and it’s possible to use pibiDAV + NextCloud + Frappe. Do you know a way that I can use Frappe Drive w/ webDAV?
It’s a bit hacky but I suppose there’s always the option of using a separate WebDAV server on the directory where frappe drive stores its files. I haven’t tried something like that, though. Unfortunately I don’t know of any integration within frappe drive itself. Seems they’re accepting contributions now so it’s possible these will be implemented in the future. WebDAV is a bit of its own beast, though, so that’ll be a huge undertaking in my opinion.
Take that as you want but a vast majority of the complaints I hear about nextcloud are from people running it through docker.
Does that make it not a substantive complaint about nextcloud, if it can’t run well in docker?
I have a dozen apps all running perfectly happy in Docker, i don’t see why Nextcloud should get a pass for this
Things should not care or mostly even know if they’re being run in docker.
Well, that is boldly assuming:
-
that endlessly duplicating services across containers causes no overhead: you probably already have a SQL server, a Redis server, a PHP daemon, a Web server, … but a docker image doesn’t know, and indeed, doesn’t care about redundancy and wasting storage and memory
-
that the sum of those individual components work as well and as efficiently as a single (highly-optimized) pooled instance: every service/database in its own container duplicates tight event loops, socket communications, JITs, caches, … instead of pooling it and optimizing globally for the whole server, wasting threads, causing CPU cache misses, missing optimization paths, and increasing CPU load in the process
-
that those images are configured according to your actual end-users needs, and not to some packager’s conception of a “typical user”: do you do mailing? A/V calling? collaborative document editing? … Your container probably includes (and runs) those things, and more, whether you want it or not
-
that those images are properly tuned for your hardware, by somehow betting on the packager to know in advance (and for every deployment) about your usable memory, storage layout, available cores/threads, baseline load and service prioritization
And this is even before assuming that docker abstractions are free (which they are not)
Most containers don’t package DB servers, Precisely so you don’t have to run 10 different database servers. You can have one Postgres container or whatever. And if it’s a shitty container that DOES package the db, you can always make your own container.
that those images are configured according to your actual end-users needs, and not to some packager’s conception of a “typical user”: do you do mailing? A/V calling? collaborative document editing? … Your container probably includes (and runs) those things, and more, whether you want it or not
that those images are properly tuned for your hardware, by somehow betting on the packager to know in advance (and for every deployment) about your usable memory, storage layout, available cores/threads, baseline load and service prioritization
You can typically configure the software in a docker container just as much as you could if you installed it on your host OS… what are you on about? They’re not locked up little boxes. You can edit the config files, environment variables, whatever you want.
and why would that be? More abstraction thrown in for the sake of sysadmin convenience doesn’t magically make things more efficient…
Nothing to do with efficiency, more because the containers are come with all dependencies at exactly the right version, tested together, in an environment configured by the container creator. It provides reproducibility. As long as you have the Docker daemon running fine on the host OS, you shouldn’t have any issues running the container. (You’ll still have to configure some things, of course)
I must be in the minority. I don’t trust swarm syncing or the cloud.
The simple fix is to not use nextcloud
I don’t, because I switch it with something better if something like that happens.
This is the most unhelpful, unnecessary thing I have heard anybody say all day, and my mother is still visiting…