Bye Nextcloud, I'm moving to OpenCloud

I occasionally reconsider my software choices and when a better package, distro or text editor becomes available, I give it a fair shot.

That is more or less how I landed with Ubuntu LTS for my server and container use cases, which surprisingly worked a bit better than plain Debian though it's also excellent and I might revisit it some day once they focus more on LTS. I can admit that Rocky Linux is also worth your consideration and respect, and carries the torch after Red Hat basically killed the CentOS of old, even though RPM distros aren't quite as popular for the things I do. There's also Linux Mint for my desktop Linux distro needs, which I'd describe as desktop Ubuntu without the bad parts (snaps). That's also how I ended up cancelling my JetBrains subscriptions (good IDEs but memory/storage hogs) and just moving over to a Zed based setup, about which I wrote a brief article.

For the longest time ever I put off my migration off of Nextcloud which I found to be bad software, but now that I've migrated over fully to OpenCloud I can say that I've probably made the right choice. It's pretty easy to setup and self-host in Docker containers, doesn't eat too many resources and runs well. If you don't need some overcomplicated enterprisey groupware with every feature under the sun shoved in, give it a shot!

Moving to OpenCloud

I can tell you straight up that running Nextcloud for a few years made me feel that file hosting and sync software is bound to be messy and unpleasant to operate and upgrade, it's not so at all!

Some of that might be a consequence of the pace of changes and scope creep - Nextcloud largely tried to have a very modular structure with the goal of supporting lots of different apps, none of them working particularly well. You'd end up with a half-baked mail client, half-baked calendar app, half-baked contacts app and an increasingly unstable and unreliable file sharing and sync app. Like, props to the team for making such diverse features work within the same package ecosystem, but to me it feels like something you only do when you've pretty much nailed the core domain. I had cases where having the Mail app be enabled slowed down any page load in the Files app.

Other aspects of that might be related to the tech stack choices because I would personally posit that Go will generally work more nicely for any truly technical domain when compared to PHP. There's also the whole system architecture of them storing files as files on your server (although a dedicated object storage connection is also supported, personally I've had great experience with Garage), or perhaps it's because they're building it with the slightly more modern 12 Factor App approach (don't take it as gospel, but it has some good ideas).

Whatever the case, in practice it's a nice project and good software. OpenCloud does have some additional plugins that you can install, but out of the box is a more barebones install (fast, smaller attack surface, less resource usage) and seems to be focused solely on file management and is exactly what I actually want to run:

00-opencloud-1

I will admit that their app store didn't really have that much in it either, but if I wanted a Pastebin, self-hosted maps or a web presentation viewer, I would most likely just host a separate FOSS project or write something myself, that has a smaller attack surface and doesn't make me fear over who will eventually be able to hack into and view my files besides me quite as much:

00-opencloud-2

I could technically hide everything behind Tailscale or just a regular WireGuard network, but not every single device I might need to access the files is on my Tailnet, so for now it's gonna need to be a reasonable tradeoff. Either way, if there's something that the last year has shown us, it's that you definitely want a more limited attack surface and I find that software that is focused on doing one thing well delivers on that promise more often than not:

00-opencloud-3

They also have both desktop apps for Windows, Linux and Mac, as well as mobile apps - I set them up and they all work pretty nicely! You can also setup spaces for partial sync, e.g. a separate space for work stuff and another for personal stuff, similar to the Nextcloud per-folder sync (though admittedly less granular). There's also support for cloud folders, and being able to choose an option from the context menu to download them.

Now I feel a little bit more confident about the risk of losing my files. I've had Nextcloud break on me in any number of different ways over the years, far too many of which actually led to proper data loss (thankfully I also have periodic offline backups for most stuff), that this short post might also turn into a brief rant, not just telling you what I ended up moving over to.

In memory of Nextcloud, you won't be missed

Just last week I had a situation where I wanted to copy some files from one Nextcloud folder to another one.

I dragged them over, the PC showed that things were being synced. However, what ended up happening:

What I'd essentially do is grab a backup of some of those files and drag them into the folder again, but seconds later they'd be REMOVED and the folder would be empty. I've had the same stupid bullshit occur numerous times - Nextcloud refusing folder renames, refusing uploading some files that are not in any ignore list, failing to pull files, failing to upload files, I'm surprised that I stuck with it for so long.

If I want a software package for synchronizing files, I expect it to be able to synchronize files reliably, yet no locking configuration, no caching configuration, NOTHING I tried actually helped me with it, so it just has got to go. I'm glad to be rid of it and while I haven't catalogued every failure mode of it, I did write about some of them here and largely Nextcloud has been so bad that it has made me rethink how to do software updates.

In my "everything is broken" folder I have some additional examples of updates breaking:

08-broken-updates-5

Even across seemingly minor updates, which shouldn't carry a lot of breaking changes:

09-broken-updates-6

And another older screenshot of it just messing up all of the filename encodings for whatever reason, imagine this happening to thousands of files:

12-ruined-local-folder

I'm not sure whether I have just been wholly unlucky or what, but I'm happy that I won't have to deal with those sorts of issues (at least so much) anymore. If due to my continued bad luck OpenCloud should also fail me, I'll just listen to the HN adage of "Dropbox is just SFTP" and build my own competing software package.

The migration took about one hour thanks to Ansible and me having Apache2 as an ingress in front of everything, so the TLS certs and the domain could be reused. Oh and Nextcloud client uninstaller broke me being able to open the Start menu on my laptop as a final fuck you. Horrible.


Other posts

Older: I built a custom Claude Code launcher, then outgrew it