this post was submitted on 12 Apr 2025
106 points (95.7% liked)

Selfhosted

46025 readers
1384 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 2 years ago
MODERATORS
 

As Nextcloud advanced with progresses making it competitive in fully integrated government and corporate workflows, OpenCloud is getting more and more attention.

The fact, that both are collaborative cloud plattforms, designed to be selfhosted and mainly developed in/around Berlin from FOSS-Community-Surroundings, makes one ask about the differences.

The main difference I see, is the software stack

  • Nextcloud, as a fork of ownCloud, kept the PHP code base and is still mainly developing in PHP
  • OpenCloud, also a fork of ownCloud, did a complete rewrite in Go

Until know, Nextcloud is far more feature complete (yes I know, people complain, they should fix more bugs instead of bringing new features) than OpenCloud, if we compair it with comercial cometitors like MS Teams.

I like Nextcloud!

I deploy it for various groups, teams, associations, when ever they need something where they want to have fileshare, calendar, contacts and tasks in one place. Almost every time, when I show them the functionality of Nextcloud Groups an the sharing-possibilities, people are thrilled about it, because they didn't expect such a feature rich tool. Although I sometimes wish it would be more performant and easier to maintain, so non-tech-people could care for their hosting themselves.

Why OpenCloud?

Now, with OpenCloud, I am asking my self, why not just contribute to the existing colab-cloud project Nextcloud. Why do your own thing?

Questions

So here I expect the Go as a somewhat game-changer (?). As you may have noticed, that I am not a developer or programmer, so maybe there are obvious advantages of that.

  • Will OpenCloud, at some point, outreach Nextclouds feature completeness and performance, thanks to a more modern approach with Go?
  • Will Nextcloud with their huge php stack run into problems in the future, because they cant compete with more modern architectures?
  • If you would have to deploy a selfhosted cloud environment for a ~500 people organization lasting long term: Would you stick to the goo old working php stack or see possible advantages in the future of the OpenCloud approach?

Thanks :)

top 50 comments
sorted by: hot top controversial new old
[–] phoenixz@lemmy.ca 17 points 6 days ago (2 children)

So really your only reason for possibly not liking next cloud is that it's PHP, correct?

What is the problem with PHP? I keep asking it and until now every response has been near me worthy. "Don't like PHP because some function calls are not consistent.", "don't like PHP because 20 years ago it had Manu unsafe practices!", that sort of nonsense.

What is the problem with PHP, for you?

[–] sugar_in_your_tea@sh.itjust.works 4 points 6 days ago (1 children)

I'm not OP, but here are my reasons:

  • needs a webserver to be configured properly, in addition to the application itself - most other projects handle the server itself, so I can simply reverse proxy to it
  • recent security audit found a variety of vulnerabilities - PHP has been known to have a lot of security vulnerabilities, and it's commonly targeted due to popularity and the prevalence of these vulnerabilities; using literally anything else reduces the likelihood that you'll be targeted by script kiddies
  • since it doesn't run an active server, things like WebSockets are wonky - AFAICT, Nextcloud solves this by using a separate Rust binary, which is weird
  • using the templating feature (i.e. the whole point of PHP) takes a lot of resources vs client-side rendering, so the main sell of PHP is architecturally suspect
  • I don't use it, so if I needed to fix a bug, it would be a lot of work; I'm a lot more familiar with other languages, like Go, Rust, and Python

There are a bunch of other reasons I strongly dislike PHP, but hopefully this is enough to show why I generally prefer to avoid it. In fact, Nextcloud is my only PHP-based app, and I'm testing out OCIS now (will probably try OpenCloud soon).

[–] phoenixz@lemmy.ca 0 points 1 day ago (1 children)
  • PHP doesn't have a built in web server because it doesn't need one, makes development a whole lot easier as each page is it's independent process. No worries about memory loss, state corruption, or other issues. IMHO it adds to its security and ease of handling

  • It's super fast and easy to setup and get going

  • Web sockets work just fine, I use them daily on dozens of servers doing hundreds of requests / sec all day every day

  • They did an audit and found issues? Great, I applaud people searching and finding issues. Shall we do the same for Rust, go, or chuckle JavaScript?

  • You're unfamiliar.with the language. <<< Yeah, that is the standard reason for hating PHP, it's not

[–] sugar_in_your_tea@sh.itjust.works 1 points 40 minutes ago (1 children)

adds to its security and ease of handling

PHP... security?

Any security you get from running as a separate process/thread is undermined by sloppy language semantics and standard library. The built-in "mysql_" library was atrocious and stayed in the standard library for years (removed in 7.0, ~10 years after the previous release). Errors at least used to be really inconsistently communicated (sometimes need to call another function to check error status, sometimes returns 0 or - 1, sometimes raises exceptions). Types are pretty loose and subtly change type (e.g. when an int overflows, it becomes a float?). Variables spring into existence when you use them, so no warning about typos, shadowing, etc.

The language wasn't really designed, it evolved from a simple templating engine to a full fledged language, and it cleaned up a little along the way. But a lot of the old cruft still remains.

super fast and easy to setup and get going

Yeah, that was always the goal. All you need is a webserver and a directory of scripts and you're golden.

But lowering the barrier to entry comes with costs. It encourages people to just copy and paste crap until it works, I know because that's exactly what I did when I first used PHP (JS w/ jQuery is the same way). This encourages a "just get it working" mindset instead of actually understanding what's going on.

You can certainly write good PHP code, my point is that it actively encourages cludgy code, which means security holes, and the best example is the language and standard library themselves.

Web sockets work just fine

Do they? I assume they hog a whole process/thread for themselves instead of being efficiently managed in something with proper async tooling, so it sounds like it would scale horribly. What happens if you have a million open websockets?

They did an audit and found issues? Great, I applaud people searching and finding issues. Shall we do the same for Rust, go, or chuckle JavaScript?

Yes. I would be very surprised if Go or Rust yield even a fraction of the vulnerabilities as PHP. Even if we expand the scope a bit to a full-fledged web server framework. And that's with all the server bits, while PHP only worries about its standard library.

I've used each of those languages. I've built sites in PHP, Go, and Rust, as well as Python and JavaScript (nodejs). PHP is by far the jankiest, and that's including all the footguns w/ Go's concurrency model.

[–] Andres4NY@social.ridetrans.it 1 points 32 minutes ago (1 children)

@sugar_in_your_tea @phoenixz Hi there! If you wouldn't mind indulging grampa for a minute - I'm a former php4 maintainer for Debian with a story.

One time we found a bug that caused the php interpreter to crash, based on the input passed to a function. We decided it was a security issue, but even that was kind of besides the point. We reported it upstream to the php folks. They (Rasmus!) told us it was not a high priority issue, because apache would simply restart when it crashes - no big deal

[–] sugar_in_your_tea@sh.itjust.works 1 points 29 minutes ago

🤦‍♂️

Oh man, that's exactly the cultural thing I'm talking about. Thanks!

[–] null_dot@lemmy.dbzer0.com 1 points 5 days ago (1 children)
[–] phoenixz@lemmy.ca 1 points 1 day ago (1 children)

So does your comment, what's your point? Are you really trying to tell me that an app developed in PHP 15 years ago still feels old? Because doh.

Next cloud feels old to you?

[–] null_dot@lemmy.dbzer0.com 1 points 21 hours ago

Nextcloud really does feel old.

[–] Willdrick@lemmy.world 7 points 6 days ago (1 children)

Tried OCIS a while back and its way faster than NC syncing files, even the initial sync was so fast I didn't trust it was fully done (but it was).

That being said, OCIS is missing several key features I daily use: namely proper DAV support (contacts, calendar, todo, journal, etc) as well as integrations for stuff like SeedVault for mobile backups.

[–] oxideseven@lemmy.ca 1 points 6 days ago* (last edited 6 days ago) (2 children)

I only use nextdoor for the file storage. Like Dropbox type of thing. Too get files to different computers when I need them. I don't use any other feature.

Should I switch to opencloud?

[–] Willdrick@lemmy.world 2 points 6 days ago (2 children)

Have you tried Synching? If you only need transferring files back and forth and no version control or snapshot-like backups, that might be even simpler

[–] oxideseven@lemmy.ca 1 points 6 days ago

I do want the browser interface image I can't sweep syncthing, like on a work computer, public computer, fault friends whatever.

I think that was my 1 hang up for syncthing.

[–] JustEnoughDucks@feddit.nl 1 points 6 days ago

Syncthing also even has basic version control, just no "web file browsing" interface.

That's basically my use-case as well, and it's why I'm currently switching to OCIS/OpenCloud. And OCIS (and probably OpenCloud) recently introduced the POSIX driver, so the main complaint about files not being accessible w/o some extra tool is no longer an issue. I'm planning to hard-link the data directories elsewhere to make interacting with it a bit easier.

[–] possiblylinux127@lemmy.zip 5 points 6 days ago (1 children)

I'm not the biggest fan of Nextcloud but there currently isn't a lot of good alternatives that have the same features and polish.

The issue with Nextcloud is the PHP junk it comes with. Writing something in Go is much better and it is silly to me that Nextcloud puts code in docker volumes. If they could separate out the code and data they would be in a much better position.

[–] phoenixz@lemmy.ca 7 points 6 days ago (1 children)

PHP junk

So serious question: what,.in your mind, is junk about PHP?

[–] possiblylinux127@lemmy.zip 8 points 6 days ago (2 children)

It is not really a proper language. It is designed to run to generate HTML dynamically but uses outside of that are pushing it. It is also problematic that Nextcloud mixes code and data. It is also slower than compiled languages like C, Go or Rust.

I think Go is really good for web applications with lots of server back end code since it is fast and static while being memory safe and easy to read. The Go syntax is cleaner than PHP and less hard to maintain.

[–] phoenixz@lemmy.ca 0 points 1 day ago

it's not really a proper language

Why, oh true Scotsman?

It's slower than compiled languages

Probably, but it requires a whole lot less work to get something done. One developer pays for 20 big ass servers, so if I have to spin up one or two extra servers over requiring way less developers, that is a no-brainer

The go syntax is cleaner than PHP

Go kinda looks/feels like JavaScript to me whereas PHP feels more like C. I find modern PHP syntax to be cleaner than go, but that is a personal opinion. Either way, maintainability has more to do with your developers and coding guidelines than with the language itself.

I have a bunch of other reasons elsewhere in this thread, but I just wanted to back you up here. Go is a lot easier to deal with than PHP in many ways, and it has a lot of tools to track down issues, while also have a lot better performance. And I don't even like Go that much (used it for the better part of a decade, pretty much since 1.0), and I much prefer Rust. But Go is 100% a good option for this use-case, since it's mostly short-lived requests with relatively simple logic, so the various footguns I dislike about Go aren't particularly relevant (and are way nicer than the footguns in PHP).

PHP feels like it "evolved" with hacks on top of hacks, and it's sort of being cleaned up now. Go feels like it was "designed," with conscious choices being made from the outset, so everything feels a lot more consistent. That makes it easier to spot bogs, performance issues, etc. Go is just the better option here, and it's not close.

[–] Sunny@slrpnk.net 5 points 6 days ago (1 children)

While I dont see OpenCloud replacing Nextcloud anytime soon, I always welcome new projects, especially like this to the open source community!

I don't think it's trying to. If you need the features Nextcloud provides, you should use Nextcloud. However, if your needs are a bit more modest and you mostly just need something that stores and retrieves files, then OpenCloud/ownCloud OCIS is probably the better bet. It's a lot faster, scales a lot better, and it's recent, so it doesn't have all he baggage Nextcloud does.

My use case is very simple, I just want to store, retrieve, and edit files. So I just need to figure out Collabora or OnlyOffice integration, which should be pretty similar to how Nextcloud does it. If I end up needing the other features NextCloud offers, I'll either switch (unlikely) or find projects that provide those features (e.g. things exist for calendar, weather, etc).

[–] dont@lemmy.world 3 points 6 days ago

Deployment of NC on kubernetes/docker (and maintenance thereof) is super scary. They copy config files around in dockerfile, e.g., it's a hell of a mess. (And not just docker: I have one instance running on an old-fashioned webhosting with only ftp access and I have to manually edit .ini and apache config after each update since they're being overwritten.) As the documentation of OCIS is growing and it gets more features, I might actually change even the larger instances, but for now I must consider it as not feature complete (since people have expectations from nextcloud that aren't met by ocis and its extensions). Moreover, I have more trust in the long term openness of nextcloud as opposed to owncloud, for historical reasons.

[–] KingThrillgore@lemmy.ml 2 points 5 days ago (1 children)

Question for the OP or anyone who uses OpenCloud: How does it size up in an enterprise? NextCloud has known capacity for corporate use with SSO, a desktop app, integrations...but it has all the pitfalls of PHP (granted I run it with Nginx/FastCGI and a lot of resources). The thing is, anything not PHP can be run for less overhead in terms of actual cloud costs, so I see a benefit to OpenCloud. But the features have to be there. I know a desktop app is coming soon, and thats just one of many needs.

[–] dengtav@lemmy.ml 1 points 5 days ago

+1 that question, I've also never installed/used OpenCloud, simply because I didn't see the benefit of it until now.

Based on the comments given so far, I have some hope that over time, the Go-approach could give us a more resource saving, but feature full alternative to tangle with, so I will stay tuned :)

For now I will stick to Nextcloud, because it gives me all the features I need and the maintanance, at least for the couple-hundred-user-instances I maintain, is not that bad, as I often read around the web :) But I also can understand, that people wish to have less maintenance struggles and therefor try sth else, wich is good for me, so I can hope for more experience reports in the near future :p

[–] corsicanguppy@lemmy.ca 1 points 6 days ago

Evaluation of the product no longer required.

[–] SomethingBurger@jlai.lu 42 points 1 week ago* (last edited 1 week ago) (7 children)

Nextcloud's biggest issue is performance, and PHP, while not a problem per se, doesn't help. PHP is not designed for huge applications that need to have processes running in the background; it only runs when a request is made then stops the process, therefore it needs to load itself from scratch on every single page load.

This is because PHP uses something called CGI; the webserver (usually nginx or Apache) calls an external PHP binary to generate a page. With Go (or pretty much any other language), the app is its own server and can keep data in memory and do stuff even when no request is coming.

[–] merthyr1831@lemmy.ml 19 points 1 week ago (1 children)

There's a bunch of technical debt passed off as features, too. Like, Nextcloud runs background tasks as a cron job which is something I've never seen with other hosted services. It's probably a holdover from before containerised applications were ubiquitous but honestly it comes off as jank.

Also, I wonder if there would be an argument for a Nextcloud fork that doubled down on PHP by utilising something like Laravel to put all the rendering on the server side. Right now it uses VueJS which is fine, but PHP is really best suited for server side rendering that you just can't leverage when using a front end framework in JavaScript.

load more comments (1 replies)
load more comments (6 replies)
[–] superkret@feddit.org 22 points 1 week ago (3 children)

I have no experience with Opencloud, but Nextcloud is borderline unmaintainable in my opinion. I welcome any new player in this space.

load more comments (3 replies)
[–] Clearwater@lemmy.world 21 points 1 week ago* (last edited 1 week ago) (11 children)

Nextcloud is more featureful (more apps like notes and hardware 2fa support). That is currently holding me to NC.

OpenCloud (fork of OCIS not original OC) is very similar when it comes to core functionality, but is missing those few apps I do not want to let go of.

Also note that nextcloud stores files in a very natural manner, where your file names and directories are stored the exact same on disk as on the interface. Opencloud does not do that. This is particularly handy if one day the app just explodes and refuses to run. With NC, you can just copy the files off the disk. Not so easy with OC.

load more comments (11 replies)
[–] Lem453@lemmy.ca 9 points 1 week ago* (last edited 1 week ago) (4 children)

This is what you're really looking for:

https://github.com/owncloud/ocis

Full rewrite in Go. Lots of features. Much better performance. More stable than nextcloud.

load more comments (4 replies)
load more comments
view more: next ›