Strong copyleft

GNU Affero General Public License v3.0

The strongest copyleft — GPL-3.0 plus Section 13, which makes letting users interact with the program over a network trigger the obligation to provide source.

SPDXAGPL-3.0-onlyAGPL-3.0-or-later

Permissions, conditions and limitations at a glance

Permissions

  • Commercial useThe software and derivatives may be used for commercial purposes.
  • ModificationThe software may be modified.
  • DistributionThe software may be distributed.
  • Patent useContributors expressly grant patent rights.
  • Private useThe software may be used and modified privately without publishing it.

Conditions

  • License and copyright noticeA copy of the license and the copyright notice must be included when distributing.
  • State changesChanges made to the original must be indicated.
  • Disclose sourceSource code must be made available when distributing.
  • Network use is distributionUsers who interact with the software over a network are also entitled to receive the source.
  • Same licenseModifications and derivatives must be distributed under the same (or a compatible) license.

Limitations

  • LiabilityExpressly states that there is no liability for damages.
  • WarrantyExpressly states that no warranty is provided.

Permissions, conditions and limitations are classified using data from choosealicense.com (GitHub, MIT License).

What kind of license is it?

The FSF published AGPL-3.0 in November 2007. Its text is nearly identical to GPL-3.0, except for Section 13, "Remote Network Interaction". Under the GPL, the obligation to provide source arises only when the program is "conveyed", so a web service that runs modified GPL software only on its servers does not have to publish its source. This is the so-called "SaaS loophole", and the AGPL closes it. Mastodon, the Nextcloud server and Grafana (which switched from Apache-2.0 in 2021) use AGPL-3.0.

What Section 13 requires

If you modify the program, you must prominently offer all users interacting with it remotely through a computer network an opportunity to receive the Corresponding Source of your version. This is usually satisfied by placing a "source code" link in the service's interface.

What you must do when distributing

All GPL-3.0 obligations (providing source, keeping notices, marking changes, same license, no further restrictions) apply as is, with Section 13 added on top.

Common misconceptions

How to apply it

Keep the text unchanged in LICENSE and attach the official AGPL notice to each file. For a web service, building a feature into the code that links from the user interface to the source repository makes it easier for anyone running a modified version to comply with Section 13. The SPDX identifier is AGPL-3.0-only or AGPL-3.0-or-later.

When it fits

It is mainly used when publishing software that runs on servers (web applications, collaboration tools, analytics platforms) while preventing other companies from running modified versions as closed services. It is also frequently chosen in dual licensing models alongside a commercial license.

Can AGPL-3.0 code go into another project?

General verdicts for taking code released under this license and distributing it combined into a project under each license below. See other combinations in the compatibility checker →

Target projectVerdictNotes
Proprietary (closed-source) software Not allowedThe entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license.
MIT Not allowedThe entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license.
Apache-2.0 Not allowedThe entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license.
MPL-2.0 Not allowedThe entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license.
LGPL-2.1 Allowed with conditionsThe combined work must be distributed under GPL-3.0 terms. GPL-3.0 and AGPL-3.0 each permit combination in their Section 13. In the combined work, the AGPL part's obligation to provide source over a network remains.
LGPL-3.0 Allowed with conditionsThe combined work must be distributed under GPL-3.0 terms. GPL-3.0 and AGPL-3.0 each permit combination in their Section 13. In the combined work, the AGPL part's obligation to provide source over a network remains.
GPL-2.0 Not allowedVersion 3.0 code is incompatible with the terms of GPL-2.0 (only) and cannot be included.
GPL-3.0 Allowed with conditionsGPL-3.0 and AGPL-3.0 each permit combination in their Section 13. In the combined work, the AGPL part's obligation to provide source over a network remains.

The content on this site is general information, not legal advice. For actual distribution, contracts or disputes, consult a lawyer or other qualified professional.