Open-source software for Joomla, Gitea, and web platforms. Home of MokoSuite, MokoGitea, and MokoCLI.
Tennessee
standards/licensing
Licensing Standards
License requirements for all MokoConsulting projects.
Default License
All Joomla extensions are licensed under GPL-3.0-or-later, consistent with Joomla's own license.
License Header
Every PHP source file must include a license header:
<?php
/**
* @package MokoConsulting.MokoSuiteBackup
* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved.
* @license GNU General Public License version 3 or later; see LICENSE
*/
declare(strict_types=1);
Repository Files
Every repo must include:
LICENSE— full GPL-3.0 license textCOPYING— can be a symlink to LICENSE or identical copy- License reference in
README.md - SPDX identifier in
composer.json:"license": "GPL-3.0-or-later"
License by Platform
| Platform | License | Notes |
|---|---|---|
| Joomla extensions | GPL-3.0-or-later | Required by Joomla ecosystem |
| MokoGitea | MIT | Matches upstream Gitea license |
| MCP servers | MIT | Permissive for tooling |
| mokoplatform CLI | MIT | Permissive for tooling |
| Documentation | CC-BY-4.0 | Wiki and docs content |
Third-Party Dependencies
Compatible Licenses (OK to use)
- MIT
- BSD-2-Clause, BSD-3-Clause
- Apache-2.0
- ISC
- Unlicense, CC0-1.0
Requires Review
- LGPL-2.1, LGPL-3.0 — OK as dependency, not for copy-paste
- AGPL-3.0 — requires legal review; network use implications
- MPL-2.0 — OK as dependency with file-level copyleft
Prohibited
- Proprietary / no license
- SSPL (Server Side Public License)
- EUPL without compatibility review
- Any "non-commercial" or "personal use only" license
Dependency Audit
Before adding any new dependency:
- Check license with
composer licensesornpm ls --all --json | jq '.dependencies[].license' - Verify license is in the compatible list above
- Check that the dependency is actively maintained
- Prefer well-known, widely-used packages over niche alternatives
Run license audits in CI:
composer licenses --format=json | jq '.dependencies[] | select(.license[] | test("GPL|AGPL|SSPL") | not)'
Attribution
- No
Co-Authored-Byheaders in commits - No AI attribution in source files
- Third-party code included directly (not as dependency) must retain original license headers
- Credit upstream projects in README where appropriate
Pages