How-To Guides
Upload a Custom Module

Upload a Custom Module

Add a custom Odoo module to your environment by uploading a .zip directly from the dashboard - no Git repository required.


When to Use This

Use module upload when you have a module as files (not in a Git repo) and want it running quickly:

  • A one-off or client-specific module you are not tracking in Git yet
  • A module downloaded from a third party
  • Fast testing of a module before you set up a repository

If you already keep your modules in a Git repository, link the repository instead - it is the better fit for anything you update regularly. See Quick Update Your Environment.


Prerequisites

  • The project is on a server you manage (a dedicated / bring-your-own server). Uploads are not available on demo or shared servers.
  • You have the Manage Repositories permission on the project.

Prepare Your .zip

Your archive must contain the module folder - the folder that holds the module's __manifest__.py.

my_module.zip
└── my_module/
    ├── __manifest__.py
    ├── __init__.py
    ├── models/
    └── views/

Guidelines:

  • Zip the folder, not the loose files - the manifest must sit inside a directory, not at the root of the archive.
  • One module per upload. Upload each module separately if you have several.
  • Up to 300 MB per upload, and 500 MB total across all uploads in a project.
  • The archive is checked on upload and rejected if it has no __manifest__.py, is not a valid .zip, or contains unsafe paths.

Step 1: Upload

  1. Open your project and go to the Additional Repositories panel.
  2. Click Upload module (.zip).
  3. Choose your archive and confirm.

The module is stored and, if the environment is running, a Quick Update starts automatically to place the new code onto the environment. You can watch progress in the environment's activity.


Step 2: Install It in Odoo

Uploading places the module's files on the environment. To use it, install it in Odoo:

  1. Open your Odoo environment and enable Developer Mode.
  2. Go to Apps and click Update Apps List.
  3. Search for your module and click Install.

Apply to Specific Environments

By default an uploaded module applies to all of the project's environments. If you want it on only some of them - for example staging but not production - use the Apply to control:

  1. In the Additional Repositories panel, open the module's Apply to editor.
  2. Select the environments the module should apply to and save.

A module set to all environments shows an All environments badge; a restricted one lists the environments it targets.

Notes:

  • The change takes effect on each environment's next deploy or Quick Update, not instantly.
  • A newly created environment inherits the module unrestricted (it applies there unless you exclude it).
  • You can set the targeting when you first upload the module, or change it any time afterward.

Update or Remove

  • Update: upload a new .zip for the same entry (use Re-upload). The new version replaces the old one and a Quick Update refreshes the environment. Bump the module version and use Odoo's Upgrade if the changes need a database update.
  • Remove: delete the entry from the Additional Repositories panel.

Durability

Uploaded modules are stored safely and re-applied automatically whenever the environment is redeployed or cloned - you do not need to re-upload after a redeploy.


Related