Skip to content

Documentation / Code and addons

Installing Addons

Deploy addons from GitHub to your Odoo services.

Once you've connected a repository, you can deploy its addons to any of your Odoo services.

Deploying an addon #

1. Open your service #

Navigate to the Odoo service where you want to install the addon.

2. Go to the Addons tab #

Click the Addons tab to see currently installed addons and available ones.

3. Select an addon #

Browse available addons from your connected repositories. Select the addon you want to install.

4. Deploy #

Click Deploy. calmo.cloud will:

  1. Download the addon code from the repository
  2. Copy it to your service's addon directory
  3. Make it available in Odoo for installation

You can monitor progress in the Actions tab.

5. Install the module #

Deploying copies the addon's code onto the service; Odoo's database doesn't have the module yet. Open the Modules tab, click Install modules and enter the addon's technical name. Odoo refreshes its apps list on the way, so an addon deployed a moment ago is found, and installs the module with the ones it depends on. The service stops while Odoo installs it and starts again afterwards. See Managing modules.

You can also install it from Apps in Odoo. Odoo lists a newly deployed addon there only after its apps list was refreshed: click Refresh apps list in the Modules tab, or Update Apps List in Odoo's developer mode.

Adding modules from the Odoo App Store or a ZIP #

Adding modules is in early access and is being rolled out team by team. If you don't see Add Module next to the repositories on a service's Repositories tab, it isn't enabled for your team yet. Get in touch and we'll switch it on.

Modules that aren't in a repository yet, such as a free app from the Odoo App Store or a paid one you bought there, can be added to one of the service's repositories straight from calmo.cloud. calmo.cloud commits them to the repository and then deploys them to the service. Only the team hosting the service can do this; a team the service is shared with can't (see Reserved for the hosting team).

  1. Open the service's Repositories tab. The repository must be private and connected through the calmo.cloud GitHub App. If the service has no such repository yet, create one on GitHub first.
  2. Click Add Module next to the repository.
  3. Choose where the modules come from:
    • Odoo App Store: enter the app's technical name, the last part of its address on apps.odoo.com. For https://apps.odoo.com/apps/modules/19.0/web_responsive that is web_responsive. calmo.cloud downloads the app for the service's Odoo version, together with the community apps it depends on.
    • Upload a ZIP: choose the ZIP file, for example a paid app you downloaded.
  4. Click Add.

calmo.cloud checks the archive and commits all of its modules to the branch the service deploys the repository from, in one commit. It then deploys the new addons to the service, the same way Deploy Addons does: the Discovery column and the "Deploy addon" actions show the progress (see Adding a repository to a service). Once the addons are deployed, install them.

What the archive may hold #

  • One folder per module at the top of the ZIP, each with a __manifest__.py, as the Odoo App Store hands them out. A ZIP with an extra folder around the modules, or with files next to them, is refused.
  • Up to 25 MB, 100 MB unpacked and 5,000 files, none of them larger than 20 MB. At most 75 of the files may be images, fonts or other binary files that aren't in the repository yet. Push larger modules with git.
  • __pycache__ folders, compiled Python files, .git files and the __MACOSX folder macOS adds are left out.
  • Refused are paths that would lead out of the archive's folders, links, archives with a password, modules made for another Odoo version (a version such as 18.0.1.0.0 on an Odoo 19.0 service) and modules named like one of Odoo's own.

GitHub also limits how much calmo.cloud may create in your repositories within a minute and within an hour, and every image, font or other binary file that isn't in the repository yet counts. If you add many such modules in a short time, calmo.cloud tells you when to try again. Until then, you can push them with git.

A module that is already in the repository is skipped. To bring it up to the archive's version, switch on Replace modules that are already in the repository: its folder then becomes exactly the archive's, and files the archive doesn't have are deleted. A service that already has a replaced module shows an update for it on its Addons tab (see Updating an addon).

A module that another repository of the service already provides is skipped as well. The Odoo App Store bundles the community apps an app depends on, which an OCA repository on the service may already have. A repository that only has the module for another Odoo version doesn't count: then the archive's copy is added.

Without logging in, the Odoo App Store only hands out free apps. For a paid app, an app that doesn't exist under that name or one without a release for the service's Odoo version, calmo.cloud says that the module is not available as a free download. Buy a paid app on apps.odoo.com, download its ZIP there and upload that instead.

When the Odoo App Store limits or refuses calmo.cloud's downloads, calmo.cloud says so instead. Try again later, or download the app's ZIP on apps.odoo.com and upload it.

Paid apps are usually licensed under OPL-1, which forbids publishing or passing them on. That is why calmo.cloud only adds modules to private repositories: keep the repository private. Check the vendor's terms for how many databases one purchase covers, because copies, previews and test systems of the service get the module too.

The download of free apps is not an official interface of the Odoo App Store. If it stops working, download the app's ZIP on apps.odoo.com and upload it.

The API and AI assistants add modules the same way (see AI Assistants (MCP)). Through an API token this needs the Manage repositories and Manage Odoo services permissions. A team can add modules up to 30 times an hour, counted across calmo.cloud, the API and AI assistants together.

Updating an addon #

When a new version of an addon is available (new commits in the repository), you can update it:

  1. Go to the service's Addons tab
  2. Find the addon with an available update
  3. Click Update to deploy the latest version
  4. Restart the service if prompted

Addon states #

Each addon on a service has a deployment state:

State Meaning
Deployed The addon is installed and active
Pending The addon is queued for deployment
Error Deployment failed — check the Actions log for details

Deploying an addon copies its code onto the service. To use it, install the module in the Modules tab or from Odoo's Apps menu.