Odoo Custom Modules from GitHub on Easy Instance

Deploy Odoo custom modules from GitHub: link a repository, push your module to the tracked branch, and install it from the console or Odoo Apps.

Updated . 3 min read

The cleanest way to run Odoo custom modules is to keep them in GitHub and let your hosting deploy them. On Easy Instance you link a GitHub repository to an instance, push a module to the tracked branch, and the instance pulls it in automatically. Then you install it in Odoo. This guide covers linking the repository, the folder layout Odoo expects, pushing, and installing the module.

This guide is about your own code. To add existing third-party or OCA modules without keeping a repository, use the Marketplace instead: see how to install Odoo modules from the Marketplace.

If you linked a repository in the Connect GitHub step while you deployed Odoo, skip to Step 2. Otherwise:

  1. Open the instance and click Git in the left sidebar.
  2. The panel shows No repository linked. Click Connect GitHub and approve access in the popup. The GitHub account is saved for this instance only.
  3. Open the repository list. Search for an existing repository, or choose Create new repository to have one created for you.
  4. For an existing repository, choose the branch the instance should deploy from.
  5. Click Link repository. Easy Instance clones the branch and registers its modules.

To use another GitHub login, click Use a different account in the same panel. You need Admin access to the project to link or change a repository.

Git section No repository linked panel with Connect GitHub button Git section repository picker open with Create new repository and northwind-dev repositories

Step 2: Put modules at the top of the repository

The repository root is added to Odoo's addons path, so each module must be a folder at the top level, not nested inside another folder:

Repository layout
my-odoo-addons/
├── approval_block/
│   ├── __init__.py
│   ├── __manifest__.py
│   ├── models/
│   └── views/
└── sale_custom_report/
    ├── __init__.py
    └── __manifest__.py

Set the version key in __manifest__.py to match your Odoo series, for example 19.0.1.0.0 on Odoo 19. List Python libraries the module needs under external_dependencies, and install them from the Packages tab (see Odoo Python packages). Easy Instance does not read a requirements.txt file.

Step 3: Push the module

On the Git tab, copy the clone URL with Copy, clone the repository, add your module folder, and push:

Terminal
git clone https://github.com/your-org/my-odoo-addons.git
cd my-odoo-addons
# add or edit your module folder, then:
git add .
git commit -m "Add approval_block module"
git push origin main

Push to the branch the instance deploys from. Pushes to that branch sync automatically. Your commit then appears in the Git tab's Commits list and under Commit History on Overview. If you want to pull right away, click Sync now ("Pull the tracked branch and register its modules").

Git panel with repository, Sync now, Change repository, branch menu and recent commits

Which branch is deployed

  • Production follows the branch selected in the Branch this instance deploys from menu on the Git tab. Switching branches syncs the new one.
  • Staging instances follow a branch named exactly like the staging instance. It is created from your default branch if missing. See Odoo staging environment.

Step 4: Install the module in Odoo

Synced modules appear in the Marketplace section under Downloads, marked Linked repository, where you can click Install. The instance restarts to apply it, so users may notice a short pause. Later, use Upgrade after you push a new version, or Uninstall.

You can also install from Odoo itself: open Apps, enable developer mode, click Update Apps List, search for the module, and click Activate.

Marketplace Downloads list with Linked repository modules and Install buttons

Give your team access to the repository

The Git tab has a Collaborators view where you can add GitHub users to the repository as Admin, Developer, or Viewer, and remove them later. Developers can push, so they can deploy to the branches they push to.

Deploy Odoo from GitHub without running servers

GitHub deploys, staging branches, backups and monitoring are part of every Easy Instance plan, at $30 per Odoo worker per month. See features and pricing, or start a 10-day free trial with no credit card.

Rather not run the server yourself?

Get managed Odoo hosting with backups, SSL, monitoring and updates handled for you. Free for 10 days.