this post was submitted on 07 Mar 2024
4 points (100.0% liked)

Selfhosted

39194 readers
434 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I hear people say that about Nextcloud often, which is part of why I haven't bothered setting it up yet.

Is there a technical reason why it's slow and clunky? Any problematic choices with how it was built?

top 20 comments
sorted by: hot top controversial new old
[–] nbailey@lemmy.ca 2 points 6 months ago (1 children)

It needs some tweaks to be snappy. The defaults are really bad.

  • change database from SQLite to a proper database like MySQL or Postgres, and configure the database server to use your memory fully
  • increase the PHP memory limit from the default (128M on many distros) to >1G, the more the better
  • install APCu in-memory cache for PHP
  • add Redis as additional cache
  • turn off the antivirus extension, if installed (ClamAV is useless)
  • use http/2 on Apache/nginx to increase performance with multiple connections

https://docbot.onetwoseven.one/services/nextcloud/

[–] TCB13@lemmy.world -1 points 6 months ago (1 children)

You can do all of that and NC will still be the piece of shirt that is it is fail to sync stuff.

[–] timbuck2themoon@sh.itjust.works 1 points 6 months ago

You are like the most miserable poster with so many axes to grind.

Relax man.

[–] MangoPenguin@lemmy.blahaj.zone 2 points 6 months ago* (last edited 6 months ago)

I assume it's just not built to be fast, because it's still slow even with MySQL, Redis, high PHP memory limits, a fast CPU and NVMe storage, and so on.

Last time I tested it I had a load time of 1-2 seconds just to bring up the files interface, it feels laggy no matter what. And syncing a folder with ~50k files and 40GB or so in size takes a very long time compared to Syncthing or just syncing over SMB.

[–] Strit@lemmy.linuxuserspace.show 1 points 6 months ago (2 children)

Likely because it's mainly written in PHP and the default database is SQLite, which is not great for large deployments.

But I use Nextcloud daily on a low end machine and I don't think it's that bad.

[–] Vub@lemmy.world 1 points 6 months ago (1 children)

SQLite sure but I doubt PHP has any negative impact.

[–] douglasg14b@lemmy.world 0 points 6 months ago (1 children)

PHP for sure can have a negative effect depending on how they are handling their data access through.

The application code itself running on PHP probably isn't a problem but the influence that PHP may have over your data access patterns can be a source of significant performance problems.

[–] TCB13@lemmy.world -1 points 6 months ago* (last edited 6 months ago)

but the influence that PHP may have over your data access patterns can be a source of significant performance problems.

Let me rephrase that for you: the influence that poorly written PHP code, an utter and total disregard for good software development practices and the general ineptitude shown by the NC developers have over your data access patterns is the source of significant performance problems. We also have to consider all the client side issues, poor decisions and a general lack of any testing.

Fixed :)

[–] TCB13@lemmy.world -1 points 6 months ago (1 children)

Likely because it’s mainly written in PHP and the default database is SQLite

Maybe the issue isn't the technologies but rather the complete and utter ineptitude of NC's developers and bullshit decisions their business team makes. Every tool is a great tool if you know how to use it properly.

[–] Telodzrum@lemmy.world 1 points 6 months ago

Idk man, runs great on my Proxmox machine

[–] Decronym@lemmy.decronym.xyz 1 points 6 months ago* (last edited 6 months ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
Git Popular version control system, primarily for code
HTTP Hypertext Transfer Protocol, the Web
NVMe Non-Volatile Memory Express interface for mass storage
SSD Solid State Drive mass storage
SSO Single Sign-On
VPN Virtual Private Network
nginx Popular HTTP server

6 acronyms in this thread; the most compressed thread commented on today has 11 acronyms.

[Thread #580 for this sub, first seen 7th Mar 2024, 12:55] [FAQ] [Full list] [Contact] [Source code]

[–] TCB13@lemmy.world 0 points 6 months ago* (last edited 6 months ago) (1 children)

What's wrong with Nextcloud, and why is it slow/clunky?

Yes it's a pile of shit. Nextcloud is garbage, very bad usability, more reasons and issues listed here: https://lemmy.world/comment/1571886 and https://lemmy.world/comment/346174

Is there a technical reason why it’s slow and clunky? Any problematic choices with how it was built?

Yes, like every single technical decision and line of code they've ever made. https://lemmy.world/comment/5490189

There's software that while good intended is simply garbage and NextCloud is a good example. They constantly market themselves as the self-hosted alternative to MS Office 365 / Google yet they never deliver.

[–] Lem453@lemmy.ca 0 points 6 months ago (1 children)

A previous thread put it best. It always feels 75% complete.

I've been using it since back when it was owncloud. It never felt stable.

Finally went with seafile and it's super fast, stable and reliable.

[–] TCB13@lemmy.world 0 points 6 months ago (1 children)

Seafile, that's a name I haven't heard in a very long time. How does that work in terms of self-hosting limitations, mobile clients and sync? Do you have any experience with Synching for instance? How does it compare performance wise?

[–] ogarcia@lemmy.world 0 points 6 months ago (1 children)

Synching is currently the fastest and lightest you will find, but the concept is different from Seafile or Nextcloud. With Synching there is no central server, you have resources (folders) shared between nodes on a peer-to-peer basis. This has several advantages, the most obvious one is that if a node goes down the rest continues working, but also that if a file is available in two or more nodes when a new node enters it will download that file from all the nodes in which it is available. As a disadvantage we could say that there is no web server where to see the shared files, so you will not be able to enter a URL with username and password and browse the files and upload or download. You will not be able to share files with third parties through a URL either.

[–] TCB13@lemmy.world 0 points 6 months ago (1 children)

I know exactly how Synching works, the point is not the p2p nature of it, the point is that Nextcloud's sync performance and reliability isn't even comparable because the desktop clients, sync algorithm and server side tech (PHP) won't ever be as performant at dealing with files as Go is.

The way Nextcloud implemented sync is totally their decision and fault. Syncthing can be used in a more "client > server" architecture and there are professional deployments of that provided by Kastelo for enterprise customers with SSO integrations, web interfaces, user management and whatnot.

Nextcloud could've just implemented all their web UI and then rely on the Syncthing code for the desktop / mobile clients sync. Without even changing Syncthing's code, one way to achieve this would be launch a single Syncthing instance per NC user and then build a GUI around that that would communicate with the NC API do handle key exchanges with the core Syncthing process. Then add a few share options in the context menu and done.

This situation illustrates very clearly the issue with Nextcloud development and their decisions - they could've just leveraged the great engine that Syncthing has a backend for sync but instead, as stubborn as they are, they came up with an half assed-solution that in true Nextcloud fashion never delivers as promised.

[–] Kynn@jlai.lu 0 points 6 months ago* (last edited 6 months ago) (1 children)

User management on syncthing ? I'd be interested by your source mate. This would incline me to try it. I currently use a ldap server for me and my friends. And seafile with the ldap.

[–] TCB13@lemmy.world 0 points 6 months ago (1 children)

You may want to read my post again as there's currently no user management in Syncthing. I just said that Kastelo provides a payed and very proprietary solution with user management for enterprise customers.

Anyways for anyone who wants to code a solution like that it isn't impossible, I proceeded to outline what Kastelo does on their solution and what Netcloud cloud've done.--

[–] Kynn@jlai.lu 1 points 6 months ago (1 children)

Ok, I thought it was separated from the notion of pro support, like argument 1 and argument 2. But I suppose that's on me.

Anyway, too bad, I would have looked forward to it :D. I don't need a client server model. But i do need replication and multi user access.

[–] TCB13@lemmy.world 1 points 6 months ago

But i do need replication and multi user access.

You can setup one Syncthing instance per user for that. That's the way it was designed to work.