Software licenses for self-hosters: what each label lets you do

Every app on GitHub, Docker Hub, or a directory card ships with a license label: MIT, AGPL, SSPL, Elastic, BSL. That one label decides whether you can run the app at home, put it on a work server, or host it for other people.

This page turns the labels you will actually meet into direct answers.

This is a practical guide, not legal advice. If money, customers, or a commercial product are involved, read the project's LICENSE file and get legal help when you need it.

Start here

Four questions cover almost everything people need from a license:

  1. Can I run it at home?
  2. Can my company run it?
  3. Can I change the code?
  4. Can I host it for other people?

Most home setups only need the first answer. The rest start to matter the moment you modify an app, ship it to someone, or sell hosting built on it.

Three things worth internalising before the table:

  • A free download is not an open-source license.
  • Open-source software can still be sold as a service, by you or by anyone else.
  • A free binary can still ban company use.

The repository's license grant decides all of it. The marketing page does not.

Open source vs source-available

Open source, under the Open Source Definition, lets people use, study, change, and share the software for any purpose, including commercial use. MIT, Apache-2.0, GPL, and AGPL all qualify. AGPL's network-copyleft rule does too: requiring source is not the same as restricting use.

Source-available means the code is public and usually free to run, but the terms add limits that open-source licenses cannot. SSPL section 13 conditions service use on releasing service source. Elastic License and many Sustainable Use terms directly restrict managed services. BSL, FSL, and PolyForm depend on project parameters, time limits, or whether the use competes with the publisher.

A public repo proves nothing either way. If the license is not OSI-approved, treat the project as software you can often self-host, with extra rules that still apply to you.

Can you run it, change it, and host it for others?

This table only covers licenses that play reasonably with self-hosting. Commons Clause riders, the JSON license, the Anti-Capitalist Software License, and repos with no LICENSE file at all are excluded on purpose. They are either legally murky or hostile to normal use, and the practical advice for all of them is the same: do not build on them.

LicenseSelf-hostCompanyOSIServiceModifyRedistributeCopyleft
MITyesyesyesyesyesyesnone
Apache-2.0yesyesyesyesyesyesnone
BSD-2-Clauseyesyesyesyesyesyesnone
BSD-3-Clauseyesyesyesyesyesyesnone
ISCyesyesyesyesyesyesnone
Zlibyesyesyesyesyesyesnone
Unlicenseyesyesyesyesyesyesnone
CC0-1.0yesyespdyesyesyesnone
WTFPLyesyesnoyesyesyesnone
MPL-2.0yesyesyesyescarefulcarefulweak
LGPL-2.1yesyesyesyescarefulcarefulweak
LGPL-3.0yesyesyesyescarefulcarefulweak
EPL-2.0yesyesyesyescarefulcarefulweak
GPL-2.0yesyesyesyescarefulcarefulstrong
GPL-3.0yesyesyesyescarefulcarefulstrong
AGPL-3.0yesyesyescarefulcarefulcarefulnetwork
EUPL-1.2yesyesyescarefulcarefulcarefulnetwork
OSL-3.0yesyesyescarefulcarefulcarefulnetwork
SSPL-1.0yesyesnocarefulcarefulcarefulservice
Elastic-2.0yesyesnonocarefulcarefulnone
BUSL-1.1dependsdependsnodependsdependsdependsdelayed
FSLyescarefulnocarefulyescarefuldelayed
PolyForm Shieldyescarefulnocarefulyescarefulnone
Sustainable Useyesyesnonodependsdependsnone
PolyForm NCyesnononocarefulcarefulnone
Proprietary / EULAdependsdependsn.a.dependsnonon.a.
CC BY 4.0yesyesn.a.yesyesyesnone
CC BY-SA 4.0yesyesn.a.carefulcarefulcarefulshare-alike
CC BY-NC 4.0yesnon.a.nocarefulcarefulnone
Dual licensingyesyesdependsdependsdependsdependsdepends
Community + enterprisedependsdependsdependsdependsdependsdependsmixed
or-later / mixed treesyesyesdependsdependsdependsdependsmixed

What the verdicts mean

The columns

  • Self-host: can you run it on your own hardware, for yourself and your household?
  • Company: can it run on a work server, for internal business use, in production?
  • OSI: is it OSI-approved open source? pd means a public-domain dedication that works like open source without being on the approved list.
  • Service: can you host it for people outside your household or company, including paid hosting?
  • Modify: can you change the code, and what do you owe when those changes leave your server?
  • Redistribute: can you pass the software on, in images, appliances, forks, or products?
  • Copyleft: whether conditions travel with the code, and how far.

The values

  • yes: the activity is permitted. Routine notices or attribution may still apply.
  • careful: permitted with a material obligation such as source disclosure, share-alike, or a competition limit. The card below spells it out.
  • depends: project-specific parameters, a chosen option, or separate terms decide.
  • no: blocked by the license.

One rule this table follows: it reports what the license permits, not what a legal department will approve. WTFPL permits everything and plenty of companies still ban it. That is a policy problem, not a licensing one, and the card says so. The self-host apps directory uses the same short names.

The four families

The four license families differ by what must stay open and when that obligation begins. permissive notices travel fork may close weak copyleft covered code open rest may stay closed copyleft program source follows network may add a path restricted business terms vary not open source
The four license families differ by what must stay open and when that obligation begins.

Every license above belongs to one of four families, and the family answers most questions on its own. What separates them is one thing: what you owe when the software leaves your hands.

Permissive asks only that copyright notices survive redistribution. Your fork can stay closed forever.

Weak copyleft scopes the share-back duty to the covered code. Distribute modified MPL files or a changed LGPL library and that source stays open. The rest of your product stays yours.

Copyleft covers the whole program, and the trigger is the part people get wrong.

Restricted is source-available, not open source. The code is public, but different licenses limit different uses. SSPL conditions a service offering on releasing service source. Elastic-2.0 and many Sustainable Use terms directly limit managed services. BSL 1.1, FSL, and PolyForm turn on project parameters, a conversion date, or whether your use competes with the publisher. Self-hosting for yourself or your company is usually the intended free path, but the exact text still controls.

The copyleft trigger

GPL compliance starts when you distribute a covered copy. Modification is not required: distributing an unmodified copy can still require license notices and, for object code, corresponding source.

AGPL adds a network trigger in section 13. When people use your modified version over a network, you must offer them its corresponding source.

That clause stops a modified hosted clone from staying closed, which makes AGPL a common choice for self-host web apps.

Two things follow that are worth stating plainly, because both get misread constantly:

  • Unmodified upstream does not trigger AGPL section 13, even when family, coworkers, or other remote users log in.
  • The extra network rule needs modified code plus remote interaction. If you are the only user, there is no section 13 source-offer duty.

Every license, family by family

The licenses below are grouped by family, with links to the official text and popular self-hosted apps that use each one.

Permissive licenses

Run it, change it, sell it, keep your fork private forever. The only real duty is keeping copyright notices when you redistribute.

MIT License

MIT

MIT lets you use, change, sell, or host the software with almost no friction. Keep the copyright and license notice when you pass the code or a package to someone else.

Apache License 2.0

Apache-2.0

Apache-2.0 gives you MIT-like freedom with explicit patent protection. Keep the license, copyright notices, and any NOTICE file when you redistribute it.

BSD 2-Clause License

BSD-2-Clause

BSD-2-Clause lets you use and change the software freely. Keep the copyright notice and disclaimer when you redistribute it.

BSD 3-Clause License

BSD-3-Clause

BSD-2-Clause plus one rule: you may not use the original author's name to promote your product without permission.

zlib License

Zlib

Permissive and commercial-friendly, as long as you do not misrepresent where the code came from and you mark altered versions.

Public domain dedications

Fine to run, with almost nothing to comply with. The real question is what part of the project they actually cover.

The Unlicense

Unlicense

A public-domain style dedication. Where it works as intended, you can use, change, and share the software with almost no conditions.

CC0 1.0 Universal

CC0-1.0

A Creative Commons public-domain dedication. Common for data and documentation, sometimes used to waive copyright on code as far as the law allows.

Weak copyleft licenses

Free to use anywhere. The share-back duty is scoped: changes to the covered files or library stay open when you ship them, the rest of your product stays yours.

Mozilla Public License 2.0

MPL-2.0

Weak, file-level copyleft. You can combine MPL code with other code, but distributed changes to MPL-covered files stay under MPL with source available.

GNU Lesser General Public License 2.1

LGPL-2.1

Weak copyleft built for libraries. You can link it into other software more flexibly than GPL, but changes to the LGPL library itself get shared when you distribute them.

GNU Lesser General Public License 3.0

LGPL-3.0

The newer library license. Same share-alike idea as LGPL-2.1, updated terms around combining and installing the library.

Eclipse Public License 2.0

EPL-2.0

Weak copyleft, common in the Eclipse and Java tooling world. Source duties focus on the EPL modules you distribute, not on everything around them.

Strong and network copyleft

The whole program stays free software. GPL triggers when you distribute it. AGPL, EUPL, and OSL also trigger when people reach your modified version over a network.

GNU General Public License 2.0

GPL-2.0

GPL-2.0 lets you run and change the software freely. If you distribute it, you must provide the corresponding source under the same GPL terms.

GNU General Public License 3.0

GPL-3.0

GPL-3.0 lets you run and change the software freely, but anything you distribute must keep the same source-sharing freedom. It adds clearer patent protection and rules for installing modified software on locked-down devices.

GNU Affero General Public License 3.0

AGPL-3.0

AGPL-3.0 works like GPL but also protects people using a modified version over a network. If you change the hosted app, offer those users the corresponding source.

European Union Public Licence 1.2

EUPL-1.2

A European copyleft license with a remote-access trigger, which is why it sits in this family rather than with the weak copyleft licenses.

Open Software License 3.0

OSL-3.0

Strong copyleft with network-use language. Less common than AGPL, similar questions when you offer software to other people.

Source-available and restricted

Code you can read and usually self-host, with terms that put it outside the open-source definition. SSPL conditions service use on releasing service source, while BSL, FSL, and PolyForm depend on project parameters or competition limits.

Server Side Public License 1.0

SSPL-1.0

SSPL is comfortable for running software yourself, but offering it as a service can require releasing much of the surrounding service stack. That makes it source-available, not open source.

Elastic License 2.0

Elastic-2.0

Elastic-2.0 is meant for self-managed use and lets you modify the software. You cannot offer the product itself to others as a managed service.

Business Source License 1.1

BUSL-1.1

BUSL-1.1 changes from project to project, so the Additional Use Grant decides what you may do until the published change date. After that date, the code moves to the named open-source license.

Functional Source License

FSL allows broad use but temporarily blocks products that compete with the original software. After the delay, the code converts to MIT or Apache-2.0.

Sustainable Use License

SUL

Vendor terms that allow free internal self-hosting while limiting your right to offer the software itself to third parties as a service.

PolyForm Noncommercial 1.0.0

PolyForm-Noncommercial-1.0.0

Non-commercial use, modification, and sharing are allowed. Commercial use needs separate permission from the publisher.

Proprietary EULAs and custom commercial licenses

Your rights come only from that vendor agreement. There is no general open-source permission set underneath it.

Creative Commons and content licenses

You will meet these on docs, wikis, diagrams, and media packs around self-hosting, not usually on the app backend itself. The first question is always which part of the project they cover.

Creative Commons Attribution-ShareAlike 4.0

CC-BY-SA-4.0

Attribution plus share-alike. Publicly shared adaptations must use a compatible ShareAlike license.

Creative Commons NonCommercial

CC-BY-NC-4.0

Free non-commercial use with attribution. Company use and other commercial use need a different permission.

Patterns, not licenses

Three shapes you will meet on directory cards that are not single licenses at all.

Dual licensing

Dual licensing gives the same code more than one legal path, often AGPL for the community and a paid license for companies. You follow the option you qualify for.

Community edition plus enterprise modules

The software splits into a free community edition and paid enterprise modules. The core may be open or source-available while features like SSO sit behind a separate commercial license.

or-later, linking exceptions, and mixed trees

Version suffixes, linking exceptions, and licenses that vary by folder. These change what you may do even when the short label looks familiar.

Choosing a license for your own app: the short path

If you are shipping a self-host app and want one answer rather than thirty:

  • You want maximum adoption and do not care who profits. MIT. Apache-2.0 if you want an explicit patent grant.
  • You want fixes shared back but not a fight over combined products. MPL-2.0.
  • You are shipping a library. LGPL-3.0, or MIT if you want it everywhere.
  • Your real fear is a hosted closed clone. AGPL-3.0. This is the common open-source choice for that goal.
  • You want a commercial business on top. AGPL-3.0 plus a paid commercial license, dual-licensed.
  • You need to block managed-service resale specifically, and can accept losing the open-source label. BSL 1.1 or FSL, both of which convert to open source later. Elastic-2.0 or Sustainable Use if you do not want a conversion date.
  • You want personal use free and all company use paid. PolyForm Noncommercial, understanding business adoption will be small.

Whatever you pick, write a plain-language paragraph next to the LICENSE file explaining what a self-hoster may do. Self-hosters read that paragraph before they read the legal text, and often instead of it.

Questions that come up

Does AGPL stop me self-hosting an app for my family?
No for unmodified upstream, and no when you are the only user. If you modify it and someone else, including family, uses it remotely, AGPL section 13 requires you to offer that version's corresponding source.

I run an unmodified AGPL app and let friends log in. Do I owe them source?
Unmodified upstream does not trigger AGPL section 13. The extra source-offer duty appears when remote users interact with a modified version.

My company runs a GPL app internally with local patches. Do we have to publish them?
No. GPL triggers on distribution. Internal use is not distribution.

Is a public GitHub repo open source?
Not necessarily. Check whether the license is OSI-approved. SSPL, BSL, FSL, Elastic, and PolyForm are all public and none of them are open source.

Can I sell hosting for an MIT-licensed app?
Yes. Permissive licenses do not block that, which is exactly why some projects move to AGPL or a source-available license later.

Two projects both say BSL 1.1. Do they grant the same rights?
No. The Additional Use Grant and change date differ per project. Read both.

The repo has no LICENSE file. Can I use it?
First check the README, documentation, or another file for an express license grant. GitHub's licensing guidance explains the default: if the repository grants no license anywhere, normal copyright applies and you should treat it as all rights reserved.