Research
Licence drift: the quiet relicensing of self-hosted software
Almost none of these changes stop you running the software at home. What they stop is the feature you were relying on, and single sign-on is the one that keeps moving.
Does a self-hosted project changing its licence affect me?
For personal and internal use, almost never. Every non-OSI licence in this index (n8n's Sustainable Use License, PLANKA's Fair Use License, Open WebUI's branding clause, Outline's BUSL-1.1) explicitly permits free personal and internal-organization use, and 7.6 percent of the index is affected at all. The real risk is not legal, it is functional: the same releases that change terms tend to move single sign-on, admin consoles and audit logs into a paid edition, and an in-place upgrade can take a feature away from a running instance. Check what edition your feature lives in before you pull the tag, not after.
7.6 percent of this index is source-available or proprietary, and 44.8 percent is copyleft. As a snapshot that is unremarkable, and it is the wrong thing to look at. The direction of travel has a shape: a project builds an open core, the features that make it usable by more than one person move into a paid edition, and single sign-on is almost always first across the line.
The cases, exactly#
Each is checkable against the project's own LICENSE file or release notes, and the details differ more than the summaries suggest.
n8n was never open source. The Sustainable Use License 1.0 permits use and modification for internal business or personal purposes, and redistribution only free of charge and only non-commercially. Running it for your own company and profiting from the workflows is explicitly allowed; reselling it as a service is not. Any file with .ee. in the name or .ee in the directory path is carved out of the licence entirely and needs an Enterprise License. SAML, OIDC and LDAP all live there, so the free build has local accounts and nothing else.
PLANKA moved twice. MIT, then AGPL-3.0 in 2023, then to the PLANKA Community License (a Fair Use License 1.1 derived from n8n's) with the 2.0 release candidates in May 2025. Personal, hobby, educational and internal-organization use stay free and unrestricted. The expensive change came later: version 2.2.0 in August 2026 moved OIDC to PLANKA Pro and deactivated every SSO-based account, because those users have no password to fall back on. An admin has to set a password for each one and reactivate them individually. Files with .pe. in the name are Pro and outside the community licence.
MinIO archived the community edition. GitHub archived minio/minio on 25 April 2026 and the README opens with a statement that the repository is no longer maintained. Before that, RELEASE.2025-05-24T17-08-30Z removed the embedded management console and stripped external OIDC and LDAP login from the community build. An ordinary in-place upgrade took away the admin interface and directory login in one step. The successor, AIStor Free, is not a relicensed MinIO: it is a different product under a EULA permitting standalone single-node use only, with no clustering, no modification and no redistribution. MinIO vs Garage covers the maintained alternative.
Grafana went the other way, and that matters. It moved from Apache-2.0 to AGPLv3 in April 2021. AGPL is still OSI-approved, so this was not a move out of open source, and everything a single operator needs (unified alerting, generic OIDC login, every community data source) is in the free build. What Enterprise gates is SAML, role-based access control, data source permissions, query caching, reporting and around forty commercial data source plugins. Note the pattern anyway: SAML on the paid side, OIDC on the free side.
Synapse relicensed and changed hands. Element moved it from Apache-2.0 to AGPL-3.0-only in late 2023, with a commercial licence available as the alternative, and moved the repository from matrix-org to element-hq in December 2023. The Matrix.org Foundation still owns the spec; Element writes and ships the server. The README now points at Element Server Suite, and ESS Community is free but scoped to non-commercial use up to 100 users, a limit worth reading before you standardize on it.
Docmost ships a split repository. The root LICENSE is AGPL-3.0, but the README carves out apps/server/src/ee, apps/client/src/ee and packages/ee under a proprietary Docmost Enterprise licence. That server ee directory is a git submodule pointing at github.com/docmost/ee, which returns 404 to the public, so git clone --recurse-submodules fails and you cannot rebuild the official image from public source. Behind the key: SAML, OIDC, LDAP, MFA, page-level permissions and audit logs, at 6 US dollars per seat per month with a ten seat minimum.
authentik and Portainer split by edition rather than by relicensing. authentik went the friendly direction, GPLv3 to MIT in 2022, and keeps authentik/enterprise/ under a separate Authentik Security licence gated by a runtime key. Nothing behind that wall matters at home: it is Google Workspace and Entra provisioning, RADIUS EAP-TLS, detailed audit logging and CSV export. Portainer is stranger: Community Edition is genuinely open source under the zlib licence, while the proprietary Business Edition is free for three nodes and has more features. That free tier used to be five nodes, it is one licence per company domain, and the key expires annually.
Unraid changed tiers, not terms. It has always been proprietary. In 2024 the lifetime-only key was replaced by Starter at 49 USD for up to six storage devices, Unleashed at 109 USD for unlimited devices, and Lifetime at 249 USD. Starter and Unleashed include one year of OS updates, after which a 36 USD annual extension is optional; skip it and you keep the version you have indefinitely.
Two more from the index fit the pattern. Open WebUI left plain BSD-3-Clause at v0.6.6 on 19 April 2025 for a modified BSD-3 with a branding-protection clause, which the project's own documentation states is not OSI-approved; deployments with 50 or fewer users in a rolling 30-day period are exempt. Outline is BUSL-1.1 with a change date of 1 September 2030, after which it becomes Apache-2.0, and hosting it as a service for third parties terminates your rights in the meantime.
Look at the bottom of that chart, not the top. The top is MIT, Apache-2.0 and the GPL family doing what they always did. The tail is a list of one-off licence strings that exist for exactly one project each: a Fair Use License, a Sustainable Use License, a branding clause, an NCUL1 dashboard sitting on a GPL agent, a Plus License on the default container image. Each is a bespoke document you have to read individually, and that is the actual cost of the trend: there is no longer a short list of licences you can learn once.
| Tool | Category | Licence | Class |
|---|---|---|---|
| FreshRSS | Feeds | AGPL-3.0 | Copyleft |
| Glance | Dashboards | AGPL-3.0 | Copyleft |
| HedgeDoc | Documents | AGPL-3.0 | Copyleft |
| Immich | Photos and files | AGPL-3.0 | Copyleft |
| Karakeep | Feeds | AGPL-3.0 | Copyleft |
| Trilium Notes | Documents | AGPL-3.0 | Copyleft |
| Vaultwarden | Identity | AGPL-3.0 | Copyleft |
| Wiki.js | Documents | AGPL-3.0 | Copyleft |
| PhotoPrism | Photos and files | AGPL-3.0 (Community Edition); default images ship under the PhotoPrism Plus License | Copyleft |
| MinIO | Backup | AGPL-3.0 (repository archived) | Copyleft |
| Docmost | Documents | AGPL-3.0 core, proprietary Docmost Enterprise licence for `ee` directories | Copyleft |
| Stalwart | Communication | AGPL-3.0 for the Community edition, dual licensed with the proprietary Stalwart Enterprise License for gated features | Copyleft |
| Garage | Backup | AGPL-3.0-only | Copyleft |
| Grafana | Monitoring | AGPL-3.0-only | Copyleft |
| Proxmox VE | Platforms | AGPL-3.0-only | Copyleft |
| wg-easy | Networking | AGPL-3.0-only | Copyleft |
| Synapse | Communication | AGPL-3.0-only (or a commercial license from Element) | Copyleft |
| Firefly III | Productivity | AGPL-3.0-or-later | Copyleft |
| Mealie | Productivity | AGPL-3.0-or-later | Copyleft |
| Nextcloud | Photos and files | AGPL-3.0-or-later | Copyleft |
| SearXNG | Local AI | AGPL-3.0-or-later | Copyleft |
| Vikunja | Productivity | AGPL-3.0-or-later | Copyleft |
| Pi-hole | Networking | EUPL-1.2 | Copyleft |
| Wazuh | Security | GPL-2.0 | Copyleft |
| Seafile | Photos and files | GPL-2.0 with an OpenSSL linking exception (server, Community Edition); Professional Edition is proprietary | Copyleft |
| Jellyfin | Media | GPL-2.0-only | Copyleft |
| Fail2ban | Security | GPL-2.0-or-later | Copyleft |
| AdGuard Home | Networking | GPL-3.0 | Copyleft |
| Audiobookshelf | Media | GPL-3.0 | Copyleft |
| Calibre-Web | Media | GPL-3.0 | Copyleft |
| Homepage | Dashboards | GPL-3.0 | Copyleft |
| Kavita | Media | GPL-3.0 | Copyleft |
| Komodo | Platforms | GPL-3.0 | Copyleft |
| LLDAP | Identity | GPL-3.0 | Copyleft |
| Navidrome | Media | GPL-3.0 | Copyleft |
| Paperless-ngx | Documents | GPL-3.0 | Copyleft |
| Prowlarr | Media | GPL-3.0 | Copyleft |
| Radarr | Media | GPL-3.0 | Copyleft |
| Sonarr | Media | GPL-3.0 | Copyleft |
| Technitium DNS Server | Networking | GPL-3.0 | Copyleft |
| Zigbee2MQTT | Home automation | GPL-3.0 | Copyleft |
| mailcow: dockerized | Communication | GPL-3.0 for mailcow's own code; bundled components keep their own licenses | Copyleft |
| Forgejo | Developer | GPL-3.0-or-later | Copyleft |
| Netdata | Monitoring | GPL-3.0-or-later (agent); dashboard UI under NCUL1 | Copyleft |
| TrueNAS Community Edition | Platforms | LGPL-3.0 (middleware) | Copyleft |
| ESPHome | Home automation | MIT (Python tooling) and GPL-3.0 (C++ device runtime) | Copyleft |
| Syncthing | Photos and files | MPL-2.0 | Copyleft |
| Authelia | Identity | Apache-2.0 | Permissive |
| Caddy | Networking | Apache-2.0 | Permissive |
| CasaOS | Platforms | Apache-2.0 | Permissive |
| Coolify | Platforms | Apache-2.0 | Permissive |
| File Browser | Photos and files | Apache-2.0 | Permissive |
| Gatus | Monitoring | Apache-2.0 | Permissive |
| Harbor | Developer | Apache-2.0 | Permissive |
| Homarr | Dashboards | Apache-2.0 | Permissive |
| Home Assistant | Home automation | Apache-2.0 | Permissive |
| Keycloak | Identity | Apache-2.0 | Permissive |
| Kopia | Backup | Apache-2.0 | Permissive |
| Miniflux | Feeds | Apache-2.0 | Permissive |
| Node-RED | Home automation | Apache-2.0 | Permissive |
| Podman | Platforms | Apache-2.0 | Permissive |
| Prometheus | Monitoring | Apache-2.0 | Permissive |
| Watchtower | Security | Apache-2.0 | Permissive |
| Woodpecker CI | Developer | Apache-2.0 | Permissive |
| k3s | Platforms | Apache-2.0 | Permissive |
| Docker Engine | Platforms | Apache-2.0 (Engine and Compose); Docker Desktop is proprietary | Permissive |
| ntfy | Communication | Apache-2.0 (dual licensed with GPL-2.0) | Permissive |
| Dokploy | Platforms | Apache-2.0, with DSAL 1.0 reserved for a /proprietary path | Permissive |
| Pocket ID | Identity | BSD-2-Clause | Permissive |
| restic | Backup | BSD-2-Clause | Permissive |
| BorgBackup | Backup | BSD-3-Clause | Permissive |
| Headscale | Networking | BSD-3-Clause | Permissive |
| Actual Budget | Productivity | MIT | Permissive |
| Beszel | Monitoring | MIT | Permissive |
| BookStack | Documents | MIT | Permissive |
| CrowdSec | Security | MIT | Permissive |
| Diun | Security | MIT | Permissive |
| Dozzle | Monitoring | MIT | Permissive |
| Duplicati | Backup | MIT | Permissive |
| Frigate | Home automation | MIT | Permissive |
| GitLab CE | Developer | MIT | Permissive |
| Gitea | Developer | MIT | Permissive |
| Gotify | Communication | MIT | Permissive |
| Jellyseerr | Media | MIT | Permissive |
| LocalAI | Local AI | MIT | Permissive |
| Nginx Proxy Manager | Networking | MIT | Permissive |
| Ollama | Local AI | MIT | Permissive |
| Scrutiny | Monitoring | MIT | Permissive |
| Traefik | Networking | MIT | Permissive |
| Uptime Kuma | Monitoring | MIT | Permissive |
| code-server | Developer | MIT | Permissive |
| grocy | Productivity | MIT | Permissive |
| linkding | Feeds | MIT | Permissive |
| rclone | Backup | MIT | Permissive |
| wallabag | Feeds | MIT | Permissive |
| authentik | Identity | MIT (core); authentik/enterprise/ under a separate Authentik Security license | Permissive |
| Portainer | Platforms | zlib (Community Edition); Business Edition is proprietary | Permissive |
| Emby | Media | Proprietary | Proprietary |
| Plex Media Server | Media | Proprietary | Proprietary |
| Unraid | Platforms | Proprietary, perpetual per-device licence | Proprietary |
| Mattermost | Communication | AGPL-3.0 core, Mattermost Source Available License for `server/enterprise/`, Apache-2.0 for webapp and admin tools, MIT for official binaries | Source available |
| Outline | Documents | BUSL-1.1 (Change Date 2030-09-01, converts to Apache-2.0) | Source available |
| Open WebUI | Local AI | Open WebUI License (BSD-3-Clause plus a branding clause) | Source available |
| PLANKA | Productivity | PLANKA Community License (Fair Use License 1.1) | Source available |
| n8n | Dashboards | Sustainable Use License 1.0 (plus n8n Enterprise License for .ee files) | Source available |
The uncomfortable part: copyleft is not the protection you think#
The instinct is to treat AGPL as the safe end of the table. AGPL is frequently the licence a company picks because it wants to sell exceptions: it repels competitors while leaving the vendor free to dual-license. Grafana, Synapse, MinIO, Docmost, Mattermost, Stalwart and PhotoPrism are all AGPL at the core, and every one of them either sells a commercial licence, keeps proprietary code in the same repository, or ships a default image built under different terms.
What predicts whether a project can change terms is not the licence, it is who holds the copyright. A single company with a contributor licence agreement can relicense whenever it likes; a foundation or a large distributed contributor base effectively cannot. That is the structural difference between Forgejo, which is copyleft and governed by a nonprofit, and a tool whose LICENSE currently says AGPL under a single corporate owner.
How to tell whether a licence change affects you#
Almost always it does not. Run through this and you are usually done in two minutes.
- Are you using it personally, or inside one legal entity? Every source-available licence in this index permits that, free and indefinitely. (The three genuinely proprietary entries, Plex, Emby and Unraid, are a purchase decision, not a drift question.) Read the permitted-use section, not the headline.
- Are you giving accounts to people outside that entity in a commercial relationship? That is the line PLANKA's Fair Use License draws explicitly, and clients or contractors with logins is the easiest way to cross it by accident.
- Are you hosting it as a service, reselling it, or removing the branding? That is what BUSL-1.1, n8n's Sustainable Use License and the Open WebUI branding clause are all written to stop.
- Do you need an OSI-approved licence for procurement or policy? Then the answer is no regardless of what you are doing with it.
The real risk is the feature, not a lawyer#
Nobody here is going to sue a household. What happens is that you pull a tag and something you were using is gone. MinIO's May 2025 release took away the admin console and directory login. PLANKA 2.2.0 deactivated the accounts of everyone who logged in through your identity provider. Mattermost's v11 Team Edition dropped GitLab SSO and capped activation at 250 users.
The defence is boring and it works: pin exact version tags, read the release notes for the feature you depend on before upgrading, and know which edition it lives in. An update strategy that does not lose data covers the mechanics.
Check the LICENSE file, not the marketing page#
The GitHub sidebar label reads the root LICENSE file only, so a repository with a proprietary ee directory still shows a green "AGPL-3.0" chip. Do this instead:
git clone --depth 1 https://github.com/docmost/docmost && cd docmost
cat LICENSE # the root terms
cat .gitmodules 2>/dev/null # private submodules hide closed code
grep -rniIl "enterprise licen\|source available\|fair use" --include="LICENSE*" --include="README*" .
find . -type d \( -name ee -o -name enterprise -o -name pro \) -not -path "*/node_modules/*"
find . -name "*.ee.*" -o -name "*.pe.*" | headThen check the artifact, not just the source. The image you pull is not always the code you read: PhotoPrism's latest ships under the Plus License with member extensions compiled in and the ce tag is the pure AGPL build, Netdata's agent is GPLv3 while the dashboard UI it fetches is NCUL1, and Grafana publishes an Enterprise image that runs free features until a key is applied.
The question to ask before you adopt a source-available tool#
One question, and it is not about the licence text: if the feature I depend on moved to a paid edition next month, what is my exit?
Answer it in three parts before you commit anything hard to migrate:
- Is the data in a documented, exportable format? A Postgres schema you can dump and read is an exit. An opaque blob store is not. Moving a service to a new machine is the drill.
- Is there a maintained fork or a real alternative? Woodpecker CI exists because Drone went proprietary. Garage exists as an answer to MinIO. Vikunja and BookStack are the copyleft answers to PLANKA and Docmost respectively, both with OIDC in the free build.
- Can you pin the last freely licensed tag and live with it? Sometimes yes for a year. Never forever, because you also pin the security fixes.
If all three answers are uncomfortable, choose differently now. Migrating a wiki with two hundred pages is a weekend; migrating it after you have four thousand and an SSO integration is a project.
What to do next#
Find the source-available entries among the tools you already run, then check which of your features sit behind an edition wall. State of self-hosting 2026 has the rest of the index-wide figures, The single sign-on gap covers how much of this is specifically about SSO, and the licence and edition facts for every profile are checked against primary sources under our methodology.
Questions#
Is n8n open source?
No, and it never has been. n8n ships under the Sustainable Use License 1.0: you may use and modify it for internal business or personal purposes, and redistribute it only free of charge and only non-commercially. Running it for your own company, including making money from the workflows, is explicitly fine. Selling it as a hosted service, white-labeling it or removing the branding is not. Separately, any file with .ee. in its name or .ee in its path is excluded from that licence entirely and needs an n8n Enterprise License, which is where SSO lives.
Can I still use PLANKA for free after the licence change?
Yes, for personal, hobby, educational and internal-organization use, indefinitely and at no cost. The PLANKA Community License (Fair Use License 1.1) forbids giving board access to people outside your own legal entity in a commercial relationship, running it as a hosted service, or selling anything whose value derives from PLANKA. The change that actually hurt self-hosters was not the licence, it was 2.2.0 in August 2026 moving OIDC to PLANKA Pro and deactivating every SSO-based account on upgrade.
Is MinIO dead?
The community edition is. GitHub archived minio/minio on 25 April 2026 and the README states the project is no longer maintained, with the last release being RELEASE.2025-10-15T17-29-55Z. The AGPLv3 code still builds with Go 1.24 or later, but there are no further security releases and no new community binaries or images. The successor, AIStor Free, is a proprietary EULA limited to a single standalone node with no clustering and no right to modify or redistribute. For a new deployment, pick something maintained.
Does a licence change mean I have to uninstall the software?
No. Licences are not retroactive for versions already released under the old terms, and every tag you already pulled keeps the licence it shipped with. PLANKA's 1.x tags remain AGPL-3.0, Open WebUI up to and including v0.6.5 stays plain BSD-3-Clause. Pinning an old tag is a legitimate short-term move and a bad long-term one, because you also freeze your security fixes: PLANKA 2.2.1 fixed a path traversal that let any authenticated user read arbitrary files from the server.
How do I check a project's real licence?
Read the LICENSE file in the repository, not the marketing page and not the GitHub sidebar label, which shows only the root file. Then look for carve-outs: directories named ee, enterprise or pro, filenames containing .ee. or .pe., and a .gitmodules pointing at a private repository. Finally check the image you actually pull, because it may not match the source: PhotoPrism's latest tag is built under the Plus License while the ce tag is the pure AGPL build, and Grafana publishes both an OSS image and an Enterprise image that runs free features until a key is applied.
Is AGPL safer than MIT for a self-hoster?
Not in the way people assume. 44.8 percent of this index is copyleft, and AGPL is frequently the licence a company picks precisely because it wants to sell exceptions to it. Grafana, Synapse, MinIO, Docmost, Mattermost and Stalwart are all AGPL at the core and all of them either sell a commercial licence or keep proprietary code in the same repository. What protects you is not the licence letter, it is whether the copyright is held by one company with a contributor licence agreement, because that is the precondition for changing terms later.
Sources#
- n8n LICENSE.md, Sustainable Use License 1.0 and the .ee carve-out
- n8n documentation, OIDC SSO is an Enterprise feature
- PLANKA Community License, Fair Use License 1.1 text
- PLANKA changelog, 2.2.0 breaking changes and the 2.2.1 fix
- minio/minio README and archive notice
- MinIO AIStor Free Tier licence agreement
- Grafana relicensing announcement, Apache 2.0 to AGPLv3
- Element blog, Synapse repository move and AGPL relicensing
- Docmost README, AGPL core and the ee licence split
- authentik LICENSE, MIT core and the enterprise directory
Published . Last reviewed . Found something out of date? Tell us and we will fix it and log the change.