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.
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.
Four questions cover almost everything people need from a license:
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:
The repository's license grant decides all of it. The marketing page does not.
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.
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.
| License | Self-host | Company | OSI | Service | Modify | Redistribute | Copyleft |
|---|---|---|---|---|---|---|---|
| MIT | yes | yes | yes | yes | yes | yes | none |
| Apache-2.0 | yes | yes | yes | yes | yes | yes | none |
| BSD-2-Clause | yes | yes | yes | yes | yes | yes | none |
| BSD-3-Clause | yes | yes | yes | yes | yes | yes | none |
| ISC | yes | yes | yes | yes | yes | yes | none |
| Zlib | yes | yes | yes | yes | yes | yes | none |
| Unlicense | yes | yes | yes | yes | yes | yes | none |
| CC0-1.0 | yes | yes | pd | yes | yes | yes | none |
| WTFPL | yes | yes | no | yes | yes | yes | none |
| MPL-2.0 | yes | yes | yes | yes | careful | careful | weak |
| LGPL-2.1 | yes | yes | yes | yes | careful | careful | weak |
| LGPL-3.0 | yes | yes | yes | yes | careful | careful | weak |
| EPL-2.0 | yes | yes | yes | yes | careful | careful | weak |
| GPL-2.0 | yes | yes | yes | yes | careful | careful | strong |
| GPL-3.0 | yes | yes | yes | yes | careful | careful | strong |
| AGPL-3.0 | yes | yes | yes | careful | careful | careful | network |
| EUPL-1.2 | yes | yes | yes | careful | careful | careful | network |
| OSL-3.0 | yes | yes | yes | careful | careful | careful | network |
| SSPL-1.0 | yes | yes | no | careful | careful | careful | service |
| Elastic-2.0 | yes | yes | no | no | careful | careful | none |
| BUSL-1.1 | depends | depends | no | depends | depends | depends | delayed |
| FSL | yes | careful | no | careful | yes | careful | delayed |
| PolyForm Shield | yes | careful | no | careful | yes | careful | none |
| Sustainable Use | yes | yes | no | no | depends | depends | none |
| PolyForm NC | yes | no | no | no | careful | careful | none |
| Proprietary / EULA | depends | depends | n.a. | depends | no | no | n.a. |
| CC BY 4.0 | yes | yes | n.a. | yes | yes | yes | none |
| CC BY-SA 4.0 | yes | yes | n.a. | careful | careful | careful | share-alike |
| CC BY-NC 4.0 | yes | no | n.a. | no | careful | careful | none |
| Dual licensing | yes | yes | depends | depends | depends | depends | depends |
| Community + enterprise | depends | depends | depends | depends | depends | depends | mixed |
| or-later / mixed trees | yes | yes | depends | depends | depends | depends | mixed |
The columns
pd means a public-domain dedication that works like open source without being on the approved list.The values
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.
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.
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:
The licenses below are grouped by family, with links to the official text and popular self-hosted apps that use each one.
Run it, change it, sell it, keep your fork private forever. The only real duty is keeping copyright notices when you redistribute.
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-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
BSD-2-Clause lets you use and change the software freely. Keep the copyright notice and disclaimer when you redistribute it.
BSD-3-Clause
BSD-2-Clause plus one rule: you may not use the original author's name to promote your product without permission.
ISC
A short permissive license that works like MIT in practice: use it, change it, keep the notice when you redistribute.
Zlib
Permissive and commercial-friendly, as long as you do not misrepresent where the code came from and you mark altered versions.
Fine to run, with almost nothing to comply with. The real question is what part of the project they actually cover.
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
A Creative Commons public-domain dedication. Common for data and documentation, sometimes used to waive copyright on code as far as the law allows.
WTFPL
An informal do-what-you-want license. In practice it is as free as anything on this page.
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.
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.
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.
LGPL-3.0
The newer library license. Same share-alike idea as LGPL-2.1, updated terms around combining and installing the library.
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.
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.
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.
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.
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.
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.
OSL-3.0
Strong copyleft with network-use language. Less common than AGPL, similar questions when you offer software to other people.
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.
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-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.
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.
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.
PolyForm-Shield-1.0.0
Broad use allowed, except using the software to compete with the licensor's products.
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
Non-commercial use, modification, and sharing are allowed. Commercial use needs separate permission from the publisher.
Your rights come only from that vendor agreement. There is no general open-source permission set underneath it.
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.
CC-BY-4.0
Requires attribution. Built for creative works and data rather than application backends.
CC-BY-SA-4.0
Attribution plus share-alike. Publicly shared adaptations must use a compatible ShareAlike license.
CC-BY-NC-4.0
Free non-commercial use with attribution. Company use and other commercial use need a different permission.
Three shapes you will meet on directory cards that are not single licenses at all.
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.
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.
Version suffixes, linking exceptions, and licenses that vary by folder. These change what you may do even when the short label looks familiar.
If you are shipping a self-host app and want one answer rather than thirty:
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.
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.