Nextcloud is a nightmare.
First if all, it wants to do everything and does none well (or better than specialized apps)
Its internals are a shitshow - a question about getting the real IP of the calling client raised a 10 pages discussion where people said "it works" and other days "it does not". The "solution" required you to change a volatile setting within the docker container (and do it again when the container changes)
Finally the upgrade is insane. I once tried to upgrade my installation, was told that n+2 upgrades are not possible (fair enough) and ... the installer destroyed the database. What a piece of crap. Thanks god for backups.
I've run Nextcloud for almost 3 years now via docker on a vps , it hosts my contacts, calendars and files. There is a apache reverse proxy in front of it, and a postgresql-database in the back.
Not once had I any serious issues updating when pulling new updated images.
Occasionally it whines about missing indices, but that is easily fixed using the occ command line tool. The clients real IP is forwarded by the proxy.
What I want to say is just that Nextcloud works fine.
I have also found that if you stick to the core functionality it works fine.
As soon as I started to add apps from the store it starts to be a pain. An upgrade comes out and you’re stuck on that version until they all update, OR you update not realizing and lose the functionality for some time.
Since I self-host a bunch of apps, it made more sense to use different apps dedicated to those features, like Miniflux or Navidrome. Not for everybody though.
I ran NextCloud for some years, just for the file sharing. I was the only user. About every third upgrade cocked up in some critical way that required bespoke DB fixes. Twice I basically blew away all state and recreated my entire file store from scratch from a backup because it was easier than fixing the install. Worked for me but is infeasible for any larger install. I tried using the office functionality for one document and I lost the document entirely on an upgrade because apparently the mirroring as a file is an illusion and the real office data is stored buried in the database in a way I never did manage to recover; I ended up just recreating the document. Thank goodness it was just the one document.
It is constantly screaming for upgrades but I don't know what they are doing with those upgrades because it doesn't seem to make the core any more reliable. It's just an opportunity for the upgrade to fail and lose data, which it frequently took advantage of.
The key thing that really annoyed me is that I couldn't hardly have used it more lightly than I did, and it took about every other opportunity to fall over and lose data. I can't even imagine the plight of someone trying to run this in an office environment.
You haven't necessarily gained anything by going to managing standalone apps individually, though. You've removed the unifying layer, but you're now having to keep up with the app versions and upgrade them individually by hand instead of letting the unifying layer handle it.
I gained working music and RSS that week.
If you use docker + watchtower all this is done automatically
I don’t use Watchtower, but a script that takes a btrfs snapshot before doing a docker compose pull, then docker compose up.
Same idea, just safer and fewer surprises.
That's nice and simple, do you have a shareable version of this script or some advice on btrfs pointers/pitfalls?
It's really just those three steps in a loop, nothing fancy
I mount a btrfs subvolume at /docker, and create a .snapshots subvolume inside.Each subvolume is an app and its dependencies, you want everything snapshotted as one. This is probably the biggest pitfall, if you don't take that snapshot of all the pieces.
> Not once had I any serious issues updating when pulling new updated images
I've run it for about a year until the upgrade tipped me over. I am sure that correct upgrades (n to n+1) are fine - I tried n to n+2 and instead of explaining to me that this is not possible, Nextcloud explained to me that this is not possible and fucked up big my install. I had to recover from a backup.
Strange, my experience is that, if I don't upgrade in a while, the automatic updater goes to the next version, and after installing it it tells me there's another update and so on. Or maybe you didn't use the built-in updater?
I did use the built in updater. It was 3 or 4 years ago so things may have changed
Why did you do that when the instructions say not to?
I don't understand why this attitude is so prevalent in the tech industry. The person writing the upgrade script knows if upgrades can't support n+2 jumps and it takes about 30s to build in a check:
It's more work to add it to the docs than it is to put a fail-fast check in the upgrade script, so why put it in the docs where 250k+ admins need to be aware of the limitation and avoid it?It might be creating 100k hours of waste on the sysadmin side to save 30m of work on the dev side. I just don't get it.
This is, of course, exactly what Nextcloud does. It will most certainly refuse to run and break your system. And yes, it also refused that 3-4 years ago.
Not saying it never breaks anything, but since 2016 we for example check PHP versions and other infra to not update to a broken system. We rewrote the updater in 2016 for this purpose. It's possible this has had a bug at some point of course - but it is more likely that the original poster who had this issue had this in the ownCloud times before 2016.
It's to sit at the top of the tower smugly. I know because truthfully I enjoy it myself from time to time, we all do in our own little ways. :^)
So they told you that’s not supported and don’t do it. You then did it and seem surprised at a bad outcome. And you’re blaming the software and/or vendor?
Seriously do you think that for software that manages data the proper way is for someone who starts the upgrade process to say "this is not supported, and now we fucked up your database and you cannot recover from that"? They knew that I was upgrading N+2, this is not a surprise - and I did not realize that upgrading N+2 is not supported.
The proper way would be to abort the upgrade upon discovering that I am going for an unsupported way.
This is not serious software.
I don't understand how commenters here can seriously argue this. There should be no UX for "oh this is not supported? Eh give it a shot anyway, I don't care about literally all my files".
If you don't support upgrading, don't expose that in the UI. There's no excuse for having UI that will let the user do something unsupported and then screw up their data.
Not saying it's the case here, but I wonder how much deniably malicious incompetence out there gets covertly injected into projects by competitors.
That's a very interesting conspiracy theory, I assume the amount is nonzero.
It's risky business, though, as code of course gets reviewed a few times (at least at Nextcloud). If it gets detected once ppl are put on notice. If somebody can squirrel out that the code came from a competitor, a lawsuit is waiting... And just imagine the bad publicity it causes.
Besides that, it is unethical and I wouldn't want to work at a company that pulls such stunts. I think a lot of people wouldn't. It'd be hard to keep secret, too, I mean, 5 years later the employee that was asked to do it works somewhere else and BOOM.
So all together, I think it's extremely unlikely to happen.
I CAN imagine a disgruntled ex employee or angry employee at a competitor would pull something like this. We have seen employees at a competitor create social media sock puppet accounts to spread FUD about us - but management at the competitor put a stop to that once we notified them.
What do you do to make performance not suck? Have been using it for years, but it just sucks in terms of showing me my pictures.
Also, what do iOS people do to make their auto upload folders upload automatically without having to open the app?
After using Nextcloud for a while i stopped, since it was to buggy, and always took an eternity to load simple pages like the dashboard.
So i decided to switch to dedicated services, instead of using nextcloud to handle everything.
For images i can recommend Immich which is a new open source project specializing in storing your images with local AI support. I can highly recommend it.
beware of leaving an open upload on Photoprism for example -- close your uploads to $public on any photo host IMHO
The Memories app is a LOT faster than the built in Photos app. I use it myself and it's quite nice, very doable on my down clocked old Intel CPU.
I had version 17 installed, I wanted to upgrade to version 20.
I launched the container for the new version, but got an error: "Exception: Updates between multiple major versions and downgrades are unsupported."
I then tried launching the container for version 18, which should be supported, which initially seemed to succeed! However, I was greeted by "Internal Server Error" in the web UI, since apparently instead of just quitting, the initial upgrade had ruined the DB schema.
After restoring version 17 from backup, migrating to 18 and onwards, then trying to register my local apps with it, I then got CSP errors in the console when signing in. After manually editing the configuration file (which you seemingly can't do through environment variables) that seemed to be resolved.
Then, I tried syncing my local files but realized that the size of all of them is suddenly 0 KB. The files would show up in the web UI, but the size would be 0 KB. I had to rename the files a few times, which eventually fixed that, no matter how odd.
Finally, I realized that trying to open any of the pages in the web UI would take around 3-10 seconds. It seemed that there was a bug in the Talk application, disabling which then gave me the expected performance, even if it affecting how the Files application works also seems odd.
I like the utility Nextcloud provides me, but despise updating it. At this point I just stick to the core apps and wipe the whole thing when I need to update to something newer, manually carrying over the files I want to sync in the new instance.
Oh, also, out of the box the DB file locking configuration causes large file uploads (a few GB) to just hang, in a way where I cannot delete them. I had to disable locking altogether.
Honestly, it's just weird. If you need 1000 SQL migrations to go from version 1 of your software to version 20, just include all of them and don't mess around with disallowing migrating across multiple major versions. Same for any changes that might impact the persisted files on the FS. Just have updates be one continuous, long stream of patches, applied sequentially. If you do that and have sane defaults, you're good.
To not be overly negative: it's good that Nextcloud exists, is free, has a somewhat nice ecosystem around it and both the desktop apps and the phone apps for iOS/Android are okay.
I remeber having some issues when I first attemped running a Nextcloud Docker container years ago. I don't know it it was because it was one of my first times with Docker or if it was Nextcloud that was screwing-up, but a native (non Docker) install solved all my problems. Was rock-solid ever since, up when I retired it recently due to unrelated reasons.
Maintaining a server can be a pita, and not upgrading frequently is both a security risk as well as problematic from a stability pov.
My recommendation would be to use our All-in-One docker image. It takes care of updates and is supremely easy to use, plus likely to bring nice performance benefits as it has all this stuff that makes it fast like the HPB for Files.
This has been my experience as well. The only major instability was due to the Ubuntu snap based runtime, which I migrated away from a few years ago.
> it wants to do everything and does none well
I can't speak to the other points you made because this has always stopped me from investing in it. What I need in my stack is a focused Google Docs alternative, but every time I've installed it (3-4 times at this point) I'm quickly overwhelmed by the quantity of stuff it includes and by how complicated actually setting up the Docs replacement was (at the time the recommendation was to install Collabora and link it up with Nextcloud, which I never could get working).
What I did see out of the box was a slow and bloated web portal, a bad calendar, a bad video conferencing app, a file backup solution, and a terrifying app store filled with add-ons that may or may not be maintained. Oh, and now it looks like they have an AI assistant?
I'm honestly relieved to see this here and know it's not just me. I ended up going with Seafile for file backups and have been very happy with it, though I'd still love to find a focused collaboration tool I can run.
> What I need in my stack is a focused Google Docs alternative
Try Etherpad (https://etherpad.org/)
> I ended up going with Seafile for file backups and have been very happy with it
I went through probably dozens of solutions and ended up with Syncthing for synchronization of data (it requires understanding how it works but once you do (usually an eureka kind of moment) this is a very powerful system.
For me using synchronization software (Seafile, Syncthing, ...) to do backups is dangerous. Borg is a very good solution (or Restik, or Kopia)
>> What I need in my stack is a focused Google Docs alternative > Try Etherpad (https://etherpad.org/)
He should better use OnlyOffice, Collabora or Cryptpad office suite. The Cryptpad server is the only one which is not a nightmare to install and setup.
Etherpad took me a few minutes to install on docker. Not sure why you do not like it
I like Etherpad very much, but it is very lite as a Google docs alternative. Collabora, Only Office or the Cryptpad suite are better, but from the 3, the cryptpad server is the easiest to install.
> For me using synchronization software (Seafile, Syncthing, ...) to do backups is dangerous.
Yep. Just synchronisation on its own for backup is at best better than nothing, a first step. It fails to protect from at least three very common occurrences you need backups for: accidental deletion, incorrect update, or corruption - the broken data is quickly synced everywhere. Adding snapshots and regular integrity checks is essential.
I guess to be clear, I do both—the central Seafile server is backed up by Borg.
Seafile has file version history, so it's more than pure syncing and has so far been sufficient for backups, but I also run it on site so it's not safe in that sense and the data matters enough to be worth redundancy.
Ah ok, same as me. I gather data from other places with Seafile to a ToBackup older (with a subfolder per system) and this gets backed up together with the main server key data.
> it wants to do everything and does none well
On that topic, it’s amusing to see when the “are we a product or a platform?” confusion jumps from its native host (publicly listed tech corps) to FOSS projects – different species altogether.
The idea of owning your own server just like any other device like laptops, smartphones and tablets, is just wonderful. But that means Linux! And Linux is absolutely infamous for poor application distribution (well technically the Linux distros). So now people make their own half-assed “app stores”, which is infinitely worse.
We would need a platform spec so that application developers can publish, users can discover and deploy, and platform providers can implement against a shared spec. That would be such a major step away from the surveillance economy and towards data sovereignty.
Maybe I misunderstand what you're suggesting, but aren't containers pretty much that application platform? Or stuff like Helm, when you're talking about larger, more complex deployments? I imagine Nextcloud needs at least a database, web server and the ability to send emails, and possibly some form of backup and high availability if you really want to rely on it. There are a lot of non-trivial ways to skin that cat.
> Maybe I misunderstand what you're suggesting, but aren't containers pretty much that application platform?
That’s right. And for UI, web is the obvious choice. But it’s not an application platform alone. You need at the very least file systems and networking/routing over https and maybe lower level protocol support too, that apps can use/discover without having to have a phd in Linux configuration. But to be truly useful, you need a lot more stuff wrt identity & auth, server-to-server networking, service discovery, cross-app communication, etc. Something more like Dokku probably.
> Or stuff like Helm, when you're talking about larger, more complex deployments?
Well fortunately you don’t need to open the Pandora’s box of consensus problems for a personal node (again like any other device). Also too much Yaml to make it sane probably?
> We would need a platform spec so that application developers can publish, users can discover and deploy, and platform providers can implement against a shared spec.
That's been tried with Linux Standard base, but it seems 'standardise on glibc 2.31 and Qt 3' is not a viable way to describe system dependencies.
Such a spec also doesn't exist for Windows or macOS systems.
If you target 'living' operating systems you need living applications that are updated to keep working. We're well past the point you can assume some 20 year old binary will work unless you're running it in an emulator.
Microsoft is so committed to backwards compatibility for Windows that you are very likely to be able to run 20 year old binaries without any heroics. They don't need any kind of platform spec, because they put in serious work to maintaining that kind of compatibility.
Honestly I realized I don’t need a web editor to change the documents, I just needed the documents on whatever device I was using. I set up syncthing to sync my Documents folder with a whitelist for specific directories and a $5 vps lets me get access to whatever documents I need. No need for a domain name and web ui when it’s all desktop apps all the way down.
For collaborative editing LibreOffice Writer has a collaboration feature. Otherwise I’ll send a copy via message service of some kind (email, txt, chat, whatever) or download a copy to my Documents folder if someone sends me a google docs link or whatever.
Does LibreOffice now allow collaborating on one document at the same time? I can use local synced files for most things, but when I need to work with my wife on a document together I always have to fall back on Google.
<< I'm honestly relieved to see this here and know it's not just me.
In a way, I have the same feeling. I really wanted it to work, but the install ( in my case via unraid ) broke multiple times after I started doing anything outside the basic functionality.
Eventually, I gave up on it and moved to dedicated apps for each portion I wanted and I have not looked back.
edit: syncthing for file sync wps-office for general doc work photoprism for pic library
Nightmare seems like a bit of hyperbole.
Look, it's not without its quirks, but it's pretty reliable. Speed and responsiveness can be further upped by using an in-memory cache like Redis/Valkey.
Nextcloud can try to be everything it wants, but as users we can ignore that and stick to file-sharing/online/cloud storage.
If one is using it primarily for file storage/sharing, it works reasonably well. We have ~1TB of Nextcloud data on an NFS share (itself snapshotted ZFS), backed up to B2 regularly.
If something happens to a Nextcloud server (and it has), restoring the data is as simple as recreating the users and copying over the data directory for each user (provided you're not using it for calendaring and such). A quick OCC command to re-index user data and we're back.
We haven't had any issues running the docker image (orchestrated via HCP Nomad).
We have also helped a friend run Nextcloud for their small non-profit, as a snap on an EC2 instance in AWS. It keeps itself up-to-date and has been pretty-much problem free for years. EBS Snapshots cover backups there.
I run my own nextcloud server now for over 5 years. There are some frustrations like the photo app which is uselessly slow. But for the files sync, contacts/calendar and some other apps it works well. It _does_ offer a million different things and some of those are half baked but the core functionality (a dropbox-like file storage) is decent in my experience.
Updates have never been an issue. And honestly I am always a bit surprised by that. I don’t update to a new version right away but when I’m ready, I change the version in the docker compose, pull, re-up the container. It performs the database migration and brings up everything. Never had an issue after using it for years. Not sure what your exact setup is, but it’s certainly not a nightmare to use.
For photos, I highly recommend "Memories" : https://apps.nextcloud.com/apps/memories
They should make it the default, IMO.
The file syncing is not very good either. It's based off WebDAV and very slow. If you only have a few files it's workable, but it isn't competitive with Dropbox, SyncThing or any of the popular alternatives.
I've noticed issue with older hardware. After a recent upgrade to modern hardware (LAN based), all performance issues have been resolved. Currently serving to >30 devices, including 4K media to multiple endpoints and 100Ks files.
It is also workable if you have more than just a few files. I sync several GB of data, books, papers, notes, photos, videos, etc. Constantly changing and it has been pretty fast. Webdav is just the interface used for external services that support the protocol. Which may not be the best tech but it certainly is supported by many, many apps and services. I cannot connect a random e.g. pdf reading app with Syncthing and maybe not with Nextcloud directly but certainly via webdav.
Nextcloud's "internals are a shitshow" because Docker's networking stack prevents it from getting the IP of the calling client? That's an unreasonable take. Why single out Nextcloud here?
This is a Nextcloud issue, in the way it forwards headers. See https://help.nextcloud.com/t/how-to-get-the-real-ips-in-logs... for the long thread
I found keeping it in docker makes it less of a nightmare, but it's definitely not something I'd trust with anything important.
There's like dozen scenarios where you end up with 0 byte files with no warning, error, etc. Sometimes it's an uploading issue, sometimes it's a syncing issue, etc. And they are still open, mutli-year, issues.
I ran into a version of it where existing uploads were replaced with zero byte versions, so I had to manually run a script to find them and I restore a pervious version. If it tried to do other things, like photos, document editing, collab, etc and did those poorly that would be fine. Failing at the most central task of just storing the data is not. It's still alpha quality, and if one intends to use it, it's critical you setup monitoring infrastructure to ensure file integrity (backups should go without saying).
This might be true but I finally deployed nextcloud for our co-op because I couldn't find any other solution to easily have a shared calendar with granular permissions to accounts I assign for write privileges, but also a dynamic ICS file download endpoint I can publicly expose. I tried a couple other caldav servers and none had this. So it does at least one thing better than specialized apps, which I typically prefer to use.
Seeing this top comment is sad.
I handle several nextcloud instances, one of them updated from owncloud, I'm very happy, it does a lot of stuff well and when you need specialized software you can because it's just files. Updates have been painless.
That's cool! Other people have had problems with it, and losing data is bad enough that it outweighs good experiences, even if they are a majority. So it's a good thing that people share their less positive experiences rather than just "it works fine for me", as one is more actionable than the other when we are discussing a "home cloud" solution.
Yep.
Running it on k8s has similar issues. I only used it as sync for my obsidian notes with occasional (maybe once a month) access to those notes via web ui. I wasn’t happy with how it would reformat my notes on save.
Sync thing supports encrypted storage in VPS and is trivial to run in k8s and it’s been much better for my needs.
With AIO upgrade is a piece of cake. -- For us, Nextcloud is a godsend, some things could be improved, true, but they are improving; we are more than grateful for this comprehensive software. Much less hassle (and even less expensive) than Microsoft before.
Running the snap-version since 5+ years without any problem
Between a couple of initial versions after fork there where a couple of bumpy upgrades, but last 4 years have been smooth
I agree that it has its problems.
Last week, I noticed that one of my contacts had an invalid date for their birthday. Try as I may, I cannot get Nextcloud to recognize 1/5/2000 as a valid date.
(And no, it's not a localization problem.)
> Finally the upgrade is insane.
Wait until you see the "solution" for dealing with the client mangling timestamps [1]. After you've been burned by server updates, and then burned by client updates, with solutions that push the problems onto the system admin, you start to wonder if using it in the first place was a mistake.
IIRC, part of the reason they forked was because OwnCloud wasn't moving fast enough. My experience makes me think OwnCloud might have been right.
1. https://github.com/nextcloud/desktop/wiki/How-to-fix-the-err...
> First if all, it wants to do everything and does none well (or better than specialized apps)
Yep. And any extra apps beyond the default just make upgrades go sideways. I've given up on it. Using syncthing instead (just for file syncing) and haven't looked back. It's not my favorite either, but just because it's a pain to configure. Once configured, it's been rock solid.
> Using syncthing instead (just for file syncing) and haven't looked back
After giving up on Nextcloud I tried syncthing too - hated it - and most of that time was pandemic and not like I was syncing outside of my own home network.
Went back to dropbox instead (just for file syncing) and haven't looked back.
The insane thing when I tried to update Nextcloud, was that it kept timing out the download because it was too slow, and then required me to delete the upgrade in progress file in order to try again...
I've seen this, I think its the web server timing out..
I use the php script updater/updater.phar directly and that works just fine
Nextcloud ate my data on a single user installation with no fancy settings turned on, with no upgrades attempted.
The sync client on desktop said it was fully synced. Only 200GB of 800GB was on the machine.
It’s some of the worst software I have ever used. It’s the pentagon house with the inverted roof built with the two-clawed hammer that eevee described.
I had a similar experience with ownCloud. Regularly, file uploads were timing out, leaving the database in an inconsistent state (apparently), which then later caused the files to be deleted on my desktop where the files were coming from. I'm still not sure why I put up so long with it. It was a slow mess, especially on the single-board computer I ran it on, and SyncThing was a breeze compared to it, with no data loss at all (and much faster on the same SBC).
I ultimately moved to Syncthing too. It requires understanding how it works, but once you do it is wonderful.
> The sync client on desktop said it was fully synced. Only 200GB of 800GB was on the machine.
Did you read the manual? It is recommended for such size to do the first sync using rsync (or similar) followed by the CLI command to build the files database.
A service that manages data cannot fail on such things. Nextcloud could refuse this first sync and point to solutions but losing data just "because the manual says rsync" is not acceptable
You're right.
Silent data loss like that is not acceptable, even if there would have been a way to sync which would have worked around the data loss bug.