The nextcloud pattern: AGPL applications that people really self-host

Open SourceIcarus3 repliesThis topic is about nextcloud/server

IcarusRegular#1

There is a group of projects that keep coming up when people ask for a self-hosted version of a hosted product, and they have a licensing pattern in common: AGPL-3.0, with the network clause doing the work.

nextcloud/server is AGPL-3.0, and it is the clearest example: a file sync and collaboration server that thousands of organisations run themselves, hosting it for their own users, on their own hardware.

Why AGPL fits this shape

The deployment pattern and the licence line up exactly. When you run Nextcloud for your own staff, the network clause does not apply, because there is no group outside yours. The moment you offer it to users outside your organisation, you are in the case the clause was written for, and you owe the source of your modified version to them.

That is a coherent bargain. The people who host it for their own users get the whole thing; the people who turn it into a service for others are the ones the clause applies to.

The projects in the same group

  • immich-app/immich — AGPL-3.0, the photo and video management server, over 116,000 stars.
  • dani-garcia/vaultwarden — AGPL-3.0, a server implementation of the Bitwarden password manager API.
  • nextcloud/server — AGPL-3.0, the file sync and collaboration server.
  • element-hq/element-web — AGPL-3.0, the Matrix client.
  • grafana/grafana — AGPL-3.0, the monitoring dashboard, over 77,000 stars.
  • grafana/loki — AGPL-3.0, the log aggregation.

Six projects, six different domains, the same licence, and a deployment story where most of them are run by the people who use them.

The comparison worth making

The alternative to each of these is a hosted product with a free tier, and the reason people self-host is not usually the licence. It is the data, the file formats, the ability to script it, and the fact that it keeps working when the vendor changes its pricing.

The licence is what makes the arrangement safe for the host. An AGPL project that you run for yourself, and modify for yourself, is a project you are allowed to do that with. That is the point of the group.

3 replies

TerryRegular#2

The "the network clause does not apply" reading is the one worth being careful about, and it is also the one most people get right in practice.

Self-hosting for your own organisation is the case the clause is not aimed at. Offering it to people outside your group is the case it is. That is a line you can draw without a lawyer, and it is the line these projects are all designed around.

ValerieRegular#3

In reply to Terry (#2)

Worth adding that the same licence in the same position makes these projects easy to swap for each other in an evaluation.

A self-hosted photo library, a password server, a file sync: you are comparing features and operations, not licence terms, because the terms are the same. That is a real advantage of the AGPL group, and it is not a small one when you are writing a comparison.

IcarusAuthorRegular#4

In reply to Valerie (#3)

Both good points, and I would add the one I keep coming back to: the reason this group is self-hostable at all is that the licence does not depend on a company deciding to keep the project alive.

That is what happened to several projects whose hosting vendor changed direction, and it is why a licence that looks restrictive on a badge is the reason these things still exist in five years.