Overview

You’ve chosen FOSS hosting. But do you know what your FOSS license actually requires? The license on your software affects what you can do with it, whether you must share modifications, and what obligations you have to your users.

This guide explains the licenses you’ll encounter most often and what they mean in practice for self-hosters.

Difficulty: Beginner Legal disclaimer: This is educational, not legal advice.


The FOSS License Landscape

FOSS licenses generally fall into two categories:

CategoryObligationFamous Examples
Copyleft / ViralYou must release source code of derivativesGPL, AGPL, EUPL
PermissiveUse, modify, redistribute freelyMIT, BSD, Apache

The “viral” aspect is often misunderstood. It only kicks in if you distribute the software. Pure internal use (self-hosting) rarely triggers viral obligations.


GPL (GNU General Public License)

Version: 2.0, 3.0 Copyleft: Strong Notable projects: Linux kernel, WordPress, MySQL, git

What GPL Means

If you modify GPL software and distribute it (e.g., offer a hosted service to others), you must:

  1. Release the full source code
  2. License it under GPL
  3. Include the GPL license text

For Self-Hosters

Internal use is safe. Running WordPress on your own server and offering a blog service is fine. You don’t need to release your custom WordPress theme or plugins because you’re not distributing WordPress — you’re using it.

Where it gets tricky: If you build a product that includes GPL components and sell access to it (Software-as-a-Service), some lawyers argue the GPL “传染” to your entire service. The AGPL closes this loophole.

Real-World Example

WordPress is GPL. You can:

WordPress plugins that extend WordPress (hooks, themes) are generally considered derivative works — but the community norm is to keep custom work private unless you distribute it.


AGPL (Affero General Public License)

Version: 3.0 Copyleft: Strong + SaaS loophole closed Notable projects: Nextcloud, Mastodon, PostgreSQL (AGPL client), MediaWiki

What AGPL Means

Same as GPL, plus: If you modify the software and use it over a network, you must also release the source to users.

This was specifically designed to close the “SaaS loophole” where companies could use GPL software internally, modify it, and offer it as a service without releasing the changes.

For Self-Hosters

If you run AGPL software (Nextcloud, Mastodon) and modify it for your own use:

Real-World Example

Mastodon is AGPL. If you run mastodon.social (the biggest instance) and modify it:

If you run a private Mastodon instance for your company and modify it:


MIT License

Copyleft: None (permissive) Notable projects: React (MIT), Angular (MIT), Rails (MIT), Express.js, jQuery

What MIT Means

The most permissive common license. You can:

With only one requirement: include the original copyright notice and license text in all copies.

For Self-Hosters

No obligations whatsoever for internal use. Even better: no viral effect if you incorporate MIT-licensed code in your products.

Real-World Example

You build a Node.js app using Express.js (MIT) and jQuery (MIT). You can:


Apache 2.0

Copyleft: None (permissive), but with patent grant Notable projects: Kubernetes, Docker (Apache 2.0 parts), TensorFlow, Spring Framework

What Apache 2.0 Means

Like MIT, plus:

For Self-Hosters

No obligations for internal use. Better than MIT for enterprise use due to patent protections.


BSD (2-Clause and 3-Clause)

Copyleft: None (permissive) Notable projects: Nginx (BSD-2), FreeBSD (BSD-2), PostgreSQL (PostgreSQL license, similar), Node.js (mostly MIT/BSD)

What BSD Means

Very permissive. 3-Clause BSD adds one extra requirement over MIT: don’t use the project’s name for endorsement without permission.

For Self-Hosters

No obligations for internal use.


EUPL (European Union Public License)

Copyleft: Strong, with compatibility clause Notable projects: European Commission’s FOSS projects

What EUPL Means

Like GPL, but explicitly compatible with other FOSS licenses (GPL, AGPL, MPL, etc.). If you’re in the EU public sector, EUPL is often the required license for funded software.

For Self-Hosters

Same rules as GPL for practical purposes.


Quick Reference Table

LicenseViral?SaaS Triggers?Private Modifications OK?Notable Projects
MITNoNo✓ YesExpress, jQuery, Rails
BSD-3NoNo✓ YesNginx, FreeBSD
Apache 2.0NoNo✓ YesKubernetes, TensorFlow
GPL v3YesNo*✓ Yes (internal)Linux, WordPress
AGPL v3YesYes⚠ CarefulNextcloud, Mastodon
EUPLYesNo*✓ Yes (internal)EU FOSS projects

*GPL v3 and EUPL do NOT have the SaaS loophole closure. AGPL v3 explicitly does.


Practical Rules for Self-Hosters

Rule 1: Internal Use Is Almost Always Safe

Running software on your own servers for your own purposes rarely triggers any FOSS license obligations. The viral clauses only apply when you distribute software.

Rule 2: If You Modify and Offer as a Service, Know Your License

Rule 3: If You Build On Top of FOSS, Consider the Stack

Example: You build a Node.js app using:

Rule 4: Read the License Before Commercial Use

If you’re building a commercial product on top of FOSS:

  1. Read the license header in the source files
  2. Check the project’s LICENSE file
  3. Consider consulting a FOSS-savvy lawyer for complex stacks

Rule 5: Keep Track of What You Use

Use licensee or similar tools to audit your dependencies:

# Install licensee
gem install licensee

# Check a project's license
licensee detect https://github.com/WordPress/WordPress

Common Scenarios

”I run Nextcloud for my family. Do I need to release my custom config?”

No. Internal use doesn’t trigger AGPL obligations.

”I modified Nextcloud and want to offer it as a hosted service to clients.”

Yes. AGPL triggers because you’re providing access over a network to third parties. You must make your modifications available under AGPL.

Workaround: Keep your modifications in a separate plugin/app that calls Nextcloud APIs, rather than modifying Nextcloud core itself.

”I use WordPress for client websites. Do I need to release my custom theme?”

No. You’re providing hosting services, not distributing WordPress. However, if you were to sell a “WordPress-based CMS product” that included WordPress core, GPL considerations apply.

”I’m building a SaaS product. Can I use PostgreSQL for free?”

Yes. PostgreSQL uses its own permissive license (similar to BSD/Apache). It’s free for any use, including commercial SaaS, without source code obligations.


Tired of managing servers?

This site helps you find the right FOSS hosting solution. If you'd rather have experts handle the infrastructure, OpsHelp offers fully managed hosting that supports open source.