What is an Odoo App, and what is an Odoo module?
Odoo modules are optional components built on top of the Odoo framework. An Odoo module contains features that may depend on the availability of other Odoo modules.
An Odoo App is a high-level Odoo component that includes many modules related to a common business domain. It is usually represented by a "main" module that includes the core features and a configuration screen where additional features can be enabled.
What license do you use for Odoo Modules?
Just like every other part of the system, Odoo Modules are published under the open source AGPL License. In fact, the nature of the AGPL License requires all Odoo modules to be always published under the same License as the rest of the system, because they are really components of the same software. See also the License page.
If I make an Odoo Module, what License do I have to use?
The rule is that all Odoo Modules need to be licensed under the same License used by the rest of the system they are based on.
If you make your own modules, they must therefore be published under the AGPL License. However, if you are using Odoo Enterprise and need to make a module for strict private use, a special Licensing exception is available (OpenERP AGPL + Private Use), which allows you to make a private module and not be required to give the source code to all users (see the next questions)
What is an "official/certified module"?
What we call an official module (or "certified module") is any module that was developer and/or verified by OpenERP SA and is included in the standard Odoo distribution. As of version 8.0, there are more than 200 official modules bundled with Odoo. These official modules are also clearly identified with a special badge on the Odoo Apps Library
What is a "private module"?
What we call a private module is an Odoo module that has been developed by an individual or a company and is meant exclusively for internal use. A private module is not a proprietary module, and cannot be distributed or sold to third parties, otherwise it stops being a private module.
The special Licensing exception (OpenERP AGPL + Private Use) granted by Odoo Enterprise allows a private module to be used internally by the company or accessed remotely by other users (e.g. suppliers or customers) without having to give them the corresponding source code.
What is a "Community module"?
What we call a Community module is an Odoo module developed by anyone from the Odoo community and available for download and use by anyone. This is different from the "official modules", the set of certified modules that are included with the official Odoo distribution, and are covered by the Odoo Enterprise warranty. Most Community modules are available on the Odoo Apps Library
This notion is important when comparing the Odoo Online offer with the alternative on-site products. Community modules are not allowed in the Odoo Online Offer, because it is a very low-cost solution. In order to guarantee all the services we provide at such a low price, we need to rely only on modules that have been quality certified by the Odoo Publisher, and require a minimal amount of maintenance and migration work. We cannot afford to provide these services for third-party modules while keeping a low-cost solution.
Users of the Odoo Online offer can of course use the generic Odoo customization features for adapting screens and processes to their needs, in addition to the official modules that are provided.
What is the special Licensing exception "AGPL + Private Use" provided with Odoo Enterprise ?
Odoo Enterprise users are allowed to ask for a special License called the "OpenERP AGPL + Private use". This is the original open source AGPL License with one additional permission: an exception to section 13 of the AGPL, allowing to make private modules without having to give the corresponding source to the users, as long as the modules are kept private and not distributed to third parties.
This extra "permissive term" is automatically removed as soon as the private module is distributed, keeping the spirit of Section 7 of the AGPL. There are many analogous examples of such exceptions added to a GPL license, like that of the GNU Wget License
This special License is only available for the parts of Odoo that were originally created by OpenERP S.A.: the server (framework) and most of the official/certified modules. The author of each module is clearly identified in the description of the module, for example on Odoo Apps. Covered modules include all modules whose author is OpenERP SA (or its former name, Tiny).
By contrast, companies that use the Odoo Community version must respect the terms of the AGPL licence: the AGPL License requires that you allow any user of your modules to receive the corresponding source code, to preserve the true Open Source nature of the project. As such, the AGPL-covered program must include a prominent link to allow access to the corresponding source code.
The full text of this license is available here: https://www.odoo.com/legal
Note: older Odoo client software (GTK desktop client and previous web client) are not available under this special license. In fact, any client can be used under their usual license without interfering with the license of your Odoo system (even with private modules), as long as they are separate programs.
Which modules are covered by the provided "AGPL + Private Use" licence ?
This licensing exception covers all features (modules) that were originally developed by OpenERP S.A., that is, all modules whose Author is OpenERP SA (formerly Tiny). This includes not only most of the certified modules (part of the standard Odoo distribution) but also any Community module made by OpenERP S.A.
It does not cover third-party modules or other Community modules developed by the community, and released under normal AGPL by their authors. The author of each module is clearly identified in the description of the module, for example on Odoo Apps.
If I have an Odoo Enterprise contract, do I have to publish the source code of the modules I make?
Not for private modules, as long as you:
- have a valid Odoo Enterprise contract.
- only use modules available under the "AGPL + Private Use" license ;
- keep your own modules strictly private (no distribution to 3rd parties at all) ;
In all other cases, you must follow the rules of the normal AGPL License (see previous question).
If I don'thave an Odoo Enterprise contract, do I have to publish the source code of the modules I make?
Yes, the AGPL License used by Odoo and all Odoo Modules requires that you allow any user of your modules to receive the corresponding source code, to preserve the true Open Source nature of the project.
This is a good thing, because by allowing other members of the community to access the source code, they will be able to give feedback and contribute improvements! This is what make Open Source projects more innovative and agile, more secure, with better quality, and all of that at a lower cost!
If I subcontract the development of an Odoo module, can it still be a private module?
In general, anything developed by a contractor is done on your behalf, and the terms of the contract usually assign to you the copyright of the resulting work, and specify that the subcontractor may not release the code without your permission. As a result, no distribution is happening, and everything occurs as if you had developed everything internally.
The GPL FAQ confirms that developing under an NDA is allowed and not considered distributing, see the related GPL FAQ entry
Can I sell an Odoo Module?
The AGPL license does not forbid requiring payment for the distribution of AGPL covered software, however the full terms of the License continue to apply, which means that you must provide the source code along with the software, and that anyone who receives it may freely modify or redistribute it under the terms of the AGPL. For example, you cannot ask people who receive your modules not to re-distribute it, they may do so freely. See also the related GPL FAQ.
In general, our experience is that this model does not work well, and is thus not worth the trouble.
Note: Keep in mind that selling copies of an Odoo Module is distribution, so this is not compatible with the "Private Use" exception granted by Odoo Enterprise (see the related FAQ above)