The future of Nextcloud and philosophical ramblings

I have a number of thoughts about the potential Nextcloud holds beyond enterprise use. I know that it is being positioned as an alternative to Google Drive/G-Suite and Microsoft Office 365, but I think there is a lot of opportunity for public use.

The two biggest strengths of NC that sets it apart are its extensibility via apps and its support for federation. I don’t think that NC is constrained to being just a cloud-based file management and collaboration platform. Because of apps, NC can be whatever users want. With the right code, it should be possible for users to install not just apps but apps that are actually services/servers. For instance, if a user or organization wants to use Riot.im, they could install it in NC by simply installing it as an “app.” It sets up the Riot server on the host, integrates with NC for user management, and it runs just as if it was built-in to NC. Yes, this is a ways off, and it will take support from third-party developers, but I think it is a viable direction for NC to take.

Working hand-in-hand with apps is support for federation. This holds a lot of opportunity. Being able to federate across different NC hosts allows users and organizations to communicate with a level of privacy not readily available with other solutions. If two NC hosts federate their Talk servers, they are able to communicate directly and natively while each host maintains its own record of the messages. Centralized solutions don’t provide this type of privacy.

By providing a robust app and federation framework, NC could help usher in a wave of decentralized services on the web. For instance, if an organization installs a PeerTube “app,” they can turn their host into a PeerTube server, select the videos they want to make accessible, and then federate with other PeerTube networks. Perhaps a user on a single-user host wants to run Friendica. It could be as simple as installing an app, and NC takes care of the rest.

NC is a very mature project, and it may be able to use it as a foundation to achieve many of the goals of Tim Berners-Lee’s Solid Project:
https://solidproject.org/

If the project takes this path, NC could be the key to shifting the balance of the web away centralized services.

An excellent summary of NC’s best features and biggest potential - federation!
There is just one statement I disagree with

Since we are into “philosophical ramblings”, this remotely resembles the 30 years old Tanenbaum–Torvalds debate, monolithic vs. microkernel design, despite NC having nothing to do with kernels…

I believe NC should be a Dropbox alternative with a bunch of standard compliant “hooks” (apps) to connect to other external servers/services

  • LDAP for external user directories
  • SAML/OIDC for SSO and external multi-factor authentication systems
  • using external STUN/TURN servers; signaling servers
  • WOPI for external Office services
  • etc.

With a federated NC setup this becomes even more beneficial: you just need one of those servers to feed/support all NC instances! Distributed computing at its best!

And I believe that’s actually NC’s enterprise strategy, too bad it does not exactly line-up with average consumer needs, aka a simple all-in-one solution. And this is why NC is tipping its hand in 200MB+ apps like OnlyOffice…

It’s hard to serve two masters… I hope they won’t give up trying…

Ah, Tanenbaum - I haven’t heard that name since undergrad. I’m pretty sure I still have his book, somewhere . . .

If I understand your analogy correctly, you’re viewing NC and all of the available apps as the kernel, correct? In my perspective, the core of NC is the kernel. The NC package that is made available for download is analogous to an OS that ships with some built-in apps. Additionally, it supports being extended in nearly limitless ways by installing additional apps from developers. It is possible that developers may build apps that require system-level services.

I see Nextcloud as having the potential that WordPress has had in the web hosting world. It has a great framework and interface that allows developers to build upon and add new services and functionalities. It has the possibility to simplify the adoption of new technologies that were previously difficult to install and configure but can now be added with a button click and tweaking a web GUI.

As for leveraging federation to accomplish many of these integrations, my views fall somewhat in the middle. In some cases, there are public servers/instances for users to connect to and federate with (Mastadon being an example). You don’t HAVE to set up the entire infrastructure - you just need a client to communicate with an existing community.

However, there are other cases where this just doesn’t make sense, is just overly complex, or requires separate infrastructure. In order to use NC Talk, you need a Talk server. While it may technically be possible to federate with another NC instance so that you could use their NC Talk server as a backend, that’s just stupid - you want your own local server.

OnlyOffice is an example of the “overly complex” and “separate infrastructure” scenario. Making that available as an app (while certainly a pain in the backside for developers) made it much more accessible. Something like PeerTube may also fit into this category - why set up a separate server for that one task?

Perhaps it’s the case that this isn’t the direction that NC would like to take. However, I think it would be a valuable avenue to explore and consider. Either way, thanks for reading - I tend to write too much, I know. :wink:

RE: Talk
It’s a nice app as long as you don’t ask too much of it, let it stay.
The moment you want 5+ attendees, coming from who knows where, it needs new “parts”.
And this is where signaling servers come in… Again, external, one of them serving many…
Just like the excellent BBB app with an external (!) BBB server… one for many NC instances…

I’d go as far as claiming any functionality that needs a 100MB+ app should be abandoned.

And with the rest we are essentially on the same page…

Well, I think that before any of those additions can be made, the issue in another thread I started needs to be addressed:

If you have any thoughts or input, I’d be interested.