Hacker News new | past | comments | ask | show | jobs | submit login

I've been running Nextcloud for family collaboration purposes since before the fork from Owncloud. I've been pretty happy with it overall.

My biggest gripe with it is the increasing schizophrenia of the UX devs. One thing I _loved_ about Nextcloud was that they paid a lot of attention to making it easy to navigate and use. The newer UX "enhancements" seem to be all about maximizing (useless) whitespace and making every widget as spherical as possible. The calendar UI used to be a joy to use, now it's the most frustrating calendar I have ever seen.

On the plus side, if you're using the docker image, upgrades are a breeze. Just bump the tag on the image, redeploy, and you're done. (It did take a _lot_ of effort to migrating my existing data to the docker container, though.)

I also use Roundcube as my main email client. I've looked at bunches of them, but Roundcube is the closest thing to a web-based Thunderbird that I have seen. Unfortunately, this had a UI "update" too and now practically nothing can be customized the way I prefer. If someone forks Roundcube and brings back the old theme, I will switch to it tomorrow.




Love nextcloud in theory, but it is a tangled and ugly mess of a UI. It is slow and they spend time on features that only the devs seem to care about.

Problem with free and open source software is that you have to follow the passion of the devs, which can sometimes optimize out of usefulness.

Because of this, I think this is very bad news for roundcube.


I run around 15 Nextcloud instances. One is for 1500 odd people for whom safety is quite important - it delivers lots of docs to a lot of devices. Those users are moving pretty fast and rove in and out of some form of ethernet service with a lot of irregularity.

My home service has to deal with some huge users (wife, phone, camera) (dad, constant saving, vast numbers of docs).

Work instance - all of the above!

I very rarely deal with the web UI but when I do it simply works or when I look into /pictures etc: locks up but that is generally the browser giving up and not the app.

I migrated a post office with several domains from RC to Snappy Mail. RC seemed to have stalled a few years back. SM is rather nifty so I'll stick.


> I think this is very bad news for roundcube.

Roundcube has been languishing a bit since the failed Roundcube-next fiasco. You can criticize the Nextcloud group for many things but at least they have proven to be consistent with pushing forward their open source projects.

> tangled and ugly mess of a UI

Maybe I'm an odd one but I have no issues with the UI. It's clean yet more info dense than many other commercial offerings.

> It is slow

I have mine working better than any google property. Nextcloud relies heavily on a performant database setup, so moving that to a separate NVME drive was one of the greatest improvements I ever made. That and properly handling image preview generation.

> Problem with free and open source software is that you have to follow the passion of the devs

Nextcloud is produced by a commercial entity, they are not a passion project. They target large installations and so tend to focus on that use-case. This makes tuning the stack to a small deployment a little bit of work.


The bad news is that webdevs will ship the fiasco.


> docker image, upgrades are a breeze.

Maybe this has been improved, but I remember thinking that and then it biting me because updating to the latest image (linuxserver/nextcloud) wasn't actually updating nextcloud itself, just the environment (php, etc.)

When I realized this, I had to go through several major nextcloud upgrades, incrementally going from one major version to the next.

Then it bit me again a few months later where nextcloud updated their maximum supported php version, and the docker image I was on quickly bumped the bundled php version to the new maximum, so the older version of nextcloud suddenly refused to start - even to run the updater. I ended up finding the max version check in nextcloud's php code and commenting it out, after that I was able to run the nextcloud update manually.

After being bit twice, I finally automated the full process so that the nextcloud software is updated in addition to the environment.


Don't use linuxserver images. My feeling is they were done by someone who doesn't understand docker very well. Frequent use of supervisor, lack of logs on stdout, weird automagic config approach.

It may feel convenient if someone did homelab without docker, but will bite you in the long run.


They work great for stateless services that you don't modify for your use case. I've had a wireguard server and client container, both based on linuxserver/wireguard, in a fairly weird setup within Nomad, running in production for over a year with no issues.

The trick was to isolate the weirdness in the wgconf files, the permissions of the containers, and their shared netns (a nomad group, in this case, with its netns configs tweaked by a startup script). The Dockerfile is simply FROM linuxserver/wireguard:latest.

(It's wrapped in a Dockerfile so its rebuilds are limited to when we rebuild our images (every commit), but AFAIU the linuxservers setup, it can also pull in wireguard updates at runtime.)


hmm, are you sure about that? the whole reason I use the linuxserver offerings is that they all follow the same pattern of not using root privileges in the container and also factoring the uid and group id out as compose variables so you can match them to other containers if needed.


Yes their images are standardized, which helps if you want "linuxserver experience" and don't care about actual image.

Try to understand what actually happens on container startup and you're stuck in three layers of base images that they use as framework, with hooks on each layer.

Wanna inherit some image and eg. copy something into config dir? Nope. Config dir is overwritten by symlink, by script on some layer. Actual config dir is moved somewhere to fit their internal convention.

Their framework allows them to quickly add new applications and keep them updated. But it's pain to work with.

I guess if you're willing to learn it and you're 100% sure, you're not going to modify image or configure application beyond of what they exposed - you might be okay using it. Otherwise just get official image.


I think both are true - LinuxServer images are usually well maintained, and they all use a common format, so once you know how to configure one, it's easy to configure the rest.

But they make a lot of decisions that are not "best practices" in Docker - such as running multiple processes per container, under a supervisor.

IMO, they are great for single-machine home deployments.


I just use the regular "official" docker hub image, not the linuxserver one. Not sure what the differences may be.

The "major versions incremental upgrades" is a fundamental nextcloud thing, to do with their database migrations I expect. I was way behind and had to do three of them in a row when I containerized my Nextcloud instance, but they all worked fine, thankfully.


Having just dealt with this… can you share that automation?


So, the script I have is just this:

    sudo -u abc php /data/www/nextcloud/updater/updater.phar --no-interaction
Although, it looks like I need to add this also:

    occ db:add-missing-indices
And, I thought I had it in my crontab, but now I don't see the job there. I haven't touched it in months, and I'm on the latest version of nextcloud, so presumably it's still working. But I honestly can't remember how I set it up.


It's even easier with the all-in-one (aio) solution. Upgrades via a simple UI, automatic Borg Backups, etc. I run this on hetzner cloud with one storagebox for the files and one storagebox for the backups. Runs nicely, gets updates, and as the storageboxes do automatic snapshots, I have double backups.


Can you use a UI to upgrade the underlying container? It's not with docker-compose?

If so that feels a bit like an anti-pattern, just like the WordPress container which updates the WP files inside the container itself, the container just contains the webserver, php and database.


The AIO solution creates several docker containers that all get updated through their assisted update process. In general, I've been quite happy with it, myself. I have it running on my Unraid machine. The only problem I have intermittently is when Unraid seems to rename container names in special circumstances. I have to go and recreate the aio container. Otherwise, it's been very smooth sailing for me; and, the AIO solution definitely runs faster than my original single Docker container solution.


So you pass in the docker socket and the AIO container runs docker commands on the host?


That is correct, yes.


It sounds a bit like using the same password for all your services... Hack a Nextcloud instance, gain root on any system through Docker,


I would assume (hope) that the AIO container itself is not exposed to the internet, only some of the containers it starts.


> Unfortunately, this had a UI "update" too and now practically nothing can be customized the way I prefer. If someone forks Roundcube and brings back the old theme, I will switch to it tomorrow.

?? The old skins (Classic and Larry) are still available as plugins via PHP composer, aren't they?


Yah, though it's annoying you have to hack them into the UI again with composer instead of having a plugin system in the app that can just add them.


Although I don't find composer that painful (except for one weird bug related to skin installation: https://github.com/roundcube/plugin-installer/issues/41).


Isn't SnappyMail a fork of Roundcube?

Edit: nope, fork of Rainloop


>docker image, upgrades are a breeze

I'm running on "bare metal" Digital Ocean VPS (like god intended), and I just use the web-based updater and it works well. APT on Debian handles everything else.


> upgrades are a breeze

upgrades are a breeze even without docker... the self updating function of nextcloud works very well.


>self updating function of nextcloud works very well

Then that's a new development. I've been using it since about v9 and it was a complete trainwreck that might have had a 25% success rate until I gave it up and moved to the docker around v17.


> Then that's a new development

my non-docker install has been going strong for 3-4 years now, so that's hardly what I call recent...


Yeah I run it baremetal. No issues at all.


I’ve had it bork my install so many times that in the end I spent more time recovering nextcloud than actually using it.

My instance is dead now, after I failed to recover it the last time and couldn’t be bothered anymore.

YMMV, but I’m out.


> I’ve had it bork my install so many times that in the end I spent more time recovering nextcloud than actually using it.

I had issues with upgrading a few times on a modest VPS, when trying to upgrade via the web interface. I've since switched to upgrading via ssh by running the `updater.phar` script[0] and haven't experienced an issue upgrading since.

I of course don't know if this would've avoided the issues you experienced, @josteink, but I wanted to mention it in case others have a similar problem to what I had.

[0] https://docs.nextcloud.com/server/latest/admin_manual/mainte...


That sucks. I'd be frustrated too. For me it just hosts calendar and contacts for a few users and my files are in seafile so perhaps the small footprint helps. In what way did it break, I want to keep an eye out for this.


It was a custom-built LXC container I built on an Alpine Linux base.

I used the Alpine packages to upgrade it, then afterwards I used the Nextcloud admin scripts to migrate the schema, apps & plugins.

Biggest clusterfuck I’ve ever dealt with. Not doing that again.

TBF the Alpine-setup probably made everything worse, and that’s a lesson learned, but I’m just fed up and can’t bother setting up a new instance now.


> The newer UX "enhancements" seem to be all about maximizing (useless) whitespace and making every widget as spherical as possible.

I have used Firefox my entire life and sometime back they added really stupid whitespace between the address bar on both ends. Every single time I reinstall the browser on a new OS I see it and remove the whitespace. It drives me up a wall. It looks so gimmicky and like a complete waste of a UI that didnt need to be changed.

Sometimes the best UI decision is to leave things as-is, especially if your UI has been plenty standard.


I also have Nextcloud running on docker using linuxserver.io image and the upgrade process is a breeze. I usually upgrade by running watchtower once a month to update my docker images.


> I also use round cube

> [ their useless UX designers ruined it ]

Why do you have to wait for someone to fork it? Can’t you just not update to the bad version? I thought that was a major appeal of hosting your own email client like this.

And given the email protocols won’t ever change, I would assume it’ll continue working the same for a decade or more.

(My only guess is a security worry, but this seems like a rather niche thing that something this niche would be unlikely to be attacked unless I were targeted by some state-level actor)


A self-hosted personal server very much needs to be kept up to date. This isn't a "state-level actor" issue; any vulnerabilities in software like this, especially in software that someone might not update in a timely fashion, will get scanned for automatically and exploited when found.

In theory, the portions that are only accessible with authentication are less security sensitive if you have only a small set of trusted users, but that's still reducing the security of your server to the security of your least security-aware user.


Hmm. I was imagining a personal server. If I were hosting a webmail client personally, I wouldn't expose it to inbound connections from the Internet at all, preferring to keep such a thing inside my LAN and via VPN only.

Clearly I overassumed though, because you're right, when it could be that one would have such a thing accessible to a small team of people who don't use a VPN.


You could also just stick it behind a reverse proxy with basic HTTP Authentication; that means you have to keep Apache/nginx/caddy/whatever up to date but that part is easy and then nothing else can get to the actual application if you've done it right.


>On the plus side, if you're using the docker image, upgrades are a breeze. Just bump the tag on the image, redeploy, and you're done. (It did take a _lot_ of effort to migrating my existing data to the docker container, though.)

As much as people rag on Snap, Nextcloud being available on it is also super convenient if one doesn't feel like using Docker.


I really wish someone would make an alternate frontend for nextcloud. The backend is pretty solid from what I can tell, but the web UI is basically unusable.

I kept upgrading the server because I thought the abysmal performance was a backend bottleneck. But no, if I turn on profiling in my browser, I can see it taking geologic ages to do... Whatever it's doing. The server is mostly idle just waiting for the browser to respond.

It's almost impressive how bad it is.


> if you're using the docker image, upgrades are a breeze. Just bump the tag on the image, redeploy, and you're done.

Or you could just run Watchtower beside it and it will automatically update your docker containers. https://github.com/containrrr/watchtower If you are OK with automated updates.


This is software that I rely on for my day-to-day tasks. I've had upgrades break things SO MANY times, that I never do an upgrade of "production" without specifically setting aside at least 30 to 60 minutes of time to deal with any potential fallout.

If we were talking about a video game, or some kind of testing/QA environment, then sure, automatic unattended upgrades would be fine.


Or you could just use the snap, and you don't need to do anything :)


Pending update of snap

Close the app to avoid disruptions


What happened to modern UX design? In the 90s it was driven by hard science and serving users. Now it feels like a competition to prevent anyone from accomplishing even the simplest task. Why do modern UX designers have such contempt for their users?


Upgrades are a breeze in general, no need for Docker there.


>On the plus side, if you're using the docker image, upgrades are a breeze.

I've had problems that required fiddly manual interventions twice after updating to a new major version.

And what keeps me from using it for anything other than File synching is the lack of a functioning integrated backup mechanism. There is a plugin, but it's unusable shite (tries to keep the entire data in memory, big has been open for years), and I really don't want to depend on a self-made combination of Filesystem and DB backup.


One of the things I like about the docker image is just that it absolutely rigidly guarantees that all the state is located only in exactly the directories I specify, and I can be sure of that by construction.

So my Nextcloud backup solution is a cron job that shuts the entire container down and runs a restic job on it, then brings it back up when the backup is complete.

I'm not completely sure that's quite "self-made"; restic is standard enough. The only special sauce is just that I don't even bother with how to handle files that are open, especially with the database. I just shut it all down.

The nice thing is this works with all my docker stuff; the cron job just iterates them one at a time, shutting them down and doing the same standard backup on them all, then bringing them up. I don't need or want a Nextcloud-specific backup mechanism.


Hm so I guess your setup uses the default SQLite database? I switched to MariaDB because I kept having Nextcloud freeze after a few weeks.


No. Docker compose, if you want to get technical not just "docker", with MariaDB. When the cron job runs docker-compose down it backs all the subdirs up, including the full DB directory. (Probably not a cheap plan for a heavy-use site, but for my family it's a normal thing for day-to-day to have no changes.)

Interesting that you comment about SQLite being a problem. I am not a heavy user of Nextcloud, but I haven't had the operational problems many people report here; I wonder if that's correlated to using SQLite.


That's an interesting idea - I guess when it's all shut down, simply copying everything can't really fail or break anything.

Since I'm using the same setup (docker compose for nextcloud, MariaDB, and some other stuff), maybe I should really look into that option, thank you!


> It did take a _lot_ of effort to migrating my existing data to the docker container

Or you could just use some external storage. Like SMB or something. And then you would learn what updates aren't 'a breeze'. And there is no built-in SMB support in the default container.

Since I'm running it since OwnCloud days too, I have an opinion on it and it's Not. Good.

Desktop client for Windows is miserable and sucks:

a) you have something with a name longer than 30 symbols? You know need to guess what the full path of that file in the error log

b) this is like 4th year when you have an option to see the errors in a separate window, except it's... empty. Not an empty error log, it' empty window

c) Oh, best part: if the client decided to update it would kill your Explorer first (like -9), install the it's shit and then... force reboot your machine without any questions

d) when you click on the client icon in the notification area it shows multiple icons what you would thing would do something. Except it's just opens the web-interface of the instance

For years mobile client couldn't work properly with a self-signed certs, which is quite ludicrous for a solution boasted as the pinnacle of self-hosting.

UI overall is shit, it's a legacy of early 2010 concepts with Googlisation on every not needed aspect. And just outright stupid ideas, which 2.5 developers at NextCloud couldn't test, like littering EVERY (sorry for caps) folder you navigate through the web interface with README.md. And shitting bricks on non case sensitive mounts, because yes, it's hard.

Server side is always running to pump out new versions, while abandoning and deprecating addons. Oh, addon you are using is now deprecated, besides being made a mere year ago? Tough luck. Stay on the supported NC version. Except it's not supported anymore because it's a year old now version.

Oh, since 2016 it's no longer a file syncing solution, it's collaboration software or even groupware. That means there are now office suite, chat, contact lists and whatever else, including an email client. This also explains why did NC 'bought' RC. Except all those parts are not integrated good.

And finally it's a PHP app with a tons of legacy code. As soon as something breaks you are drowning in multiple screen heights of errors of PHP code. And consequently all performance troubles are solved by throwing RAM and CPU at the instance.

/rant


> And finally it's a PHP app with a tons of legacy code

Finally? That's a security nightmare right there.


I think legacy code in any language is a security nightmare; not just PHP. Imagine a half-a-decade-old NodeJS project...


5 years old? Really?

Or do you just mean because of the crazy dependencies in a typical node project?


5 years if things are not updated will have vulnerabilities. It might be that framework updates will fix them, or code changes needed, or code changes because newer versions of libraries are not backward compatible. Getting old NPM projects updates is hellish. Breaking changes are very common.


This is definitely true, but PHP is a special nightmare of a beast. I think overall PHP is underrated, and is a much better language and platform than people give credit, but damn two weeks without updating dependencies in PHP is rolling the dice. Keeping up with all of the cve's is a significant chunk of a full-time job.


Old code does not develop vulnerabilities by sitting around.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: