Features
Addon Repos
Overview

Addon Repositories

Addon repositories let you include extra Odoo modules in your projects. These are Git repositories containing custom addons -- your organization's proprietary modules, community addons from OCA, or the official Odoo Enterprise repository.

Addon Tiers

OEC.sh organizes addon repositories in three tiers:

  1. Platform Addons: Available to all organizations (managed by portal admins)
  2. Organization Addons: Shared across all projects in your organization
  3. Project Addons: Specific to a single project

When addons exist at multiple levels, project-level addons take priority over organization addons, which take priority over platform addons.

Adding an Addon Repository

Add Organization Addon Repository

If you have Git connections configured, use the smart selection workflow:

  1. Go to Settings > Addon Repos tab
  2. Click Add Repository
  3. Step 1: Select a Git connection
  4. Step 2: Select a repository from your connection
  5. Step 3: Select a branch
  6. Step 4: Configure details (name is auto-filled)
  7. Click Save

The slug is automatically generated from the repository name.

Alternative: Enter URL Manually

If you prefer to enter the repository URL directly, or don't have Git connections:

  1. Click Enter URL manually instead (or if no connections exist, this is shown by default)
  2. Enter the Git repository URL (e.g., https://github.com/org/repo.git)
  3. Enter the Git branch name
  4. Fill in the name and optional description
  5. Toggle Public repository if no authentication is needed
  6. Click Save

Add Project-Specific Addon Repository

  1. Open your project
  2. Go to the Settings tab
  3. Scroll to Project Addons
  4. Click Add Repository
  5. Enter the repository details:
    • Git URL: The repository URL
    • Branch: The Git branch to use
    • Priority: Controls loading order (lower = higher priority)
  6. Click Save

Repository Settings

Each addon repository has these settings:

  • Name: A display name for the repository
  • Slug: Auto-generated URL-friendly identifier (locked after creation)
  • Description: Optional description
  • Git URL: The repository URL
  • Branch: The Git branch to use
  • Priority: Loading order (default: 100, lower values load first)
  • Public/Private: Toggle based on repository visibility
  • Install Dependencies: Enable to install requirements.txt and apt.txt

Repository Status

Each repository shows a status indicator:

  • Active (green dot): Repository is included in deployments
  • Disabled (gray dot): Repository is configured but not used

Click the toggle button to enable or disable a repository without deleting it.

Selecting Addons for a Project

Projects can choose which platform and organization addons to include:

  1. Open your project
  2. Go to the Settings tab
  3. Find the Shared Addons section
  4. Click Browse Addons to open the selection modal
  5. Use the search and filter options to find addons
  6. Select the addons you want to include
  7. Click Apply to save your selections

Selected addons will be included in the next deployment.

How Addons Are Deployed

When you deploy an environment, OEC.sh automatically:

  1. Clones all selected addon repositories
  2. Installs Python dependencies from requirements.txt (if present)
  3. Installs system packages from apt.txt (if present)
  4. Configures Odoo's addon path to include all repositories
  5. Makes addons available in the Odoo Apps menu

Per-Environment Addon Overrides

By default, environments inherit all addon repositories configured at the project level. You can customize which addons are included and which branches they use per environment.

Excluding Addons from an Environment

  1. Go to your Environment > Repositories tab
  2. Find the addon repository you want to exclude
  3. Toggle the switch to OFF (disabled state)
  4. Click Save Changes
  5. Redeploy the environment for changes to take effect

Use Case: Exclude development or testing addons from production environments, or exclude heavy addons from resource-constrained environments.

Branch Overrides per Environment

Override the branch for specific addon repositories per environment:

  1. Go to your Environment > Repositories tab
  2. Find the addon repository you want to override
  3. Click the Branch dropdown
  4. Select a different branch (e.g., 19.0-dev instead of 19.0)
  5. Click Save Changes
  6. Redeploy the environment for changes to take effect

Common Scenarios:

  • Production: Use stable branches (e.g., 19.0, main)
  • Staging: Use release candidate branches (e.g., 19.0-rc, staging)
  • Development: Use development branches (e.g., 19.0-dev, develop)
⚠️

Branch overrides are specific to each environment. Changing the branch for an addon in one environment does not affect other environments.

Viewing Environment-Specific Configuration

The Repositories tab shows:

  • Inherited addons: All project-level addon repositories
  • Toggle status: ON (included) or OFF (excluded) per environment
  • Branch: Current branch being used (with override indicator if different from default)
  • Override badge: Displayed when branch differs from project default

Managing Dependencies

Addon repositories can include dependency files:

  • requirements.txt: Python packages to install
  • apt.txt: System packages to install

Enable the Install dependencies from this repository option when adding a repository to have these installed automatically during deployment.

Removing an Addon Repository

Remove from Organization

  1. Go to Settings > Addon Repos
  2. Find the repository you want to remove
  3. Click the delete icon
  4. Confirm the deletion

Remove from Project

  1. Open your project
  2. Go to Settings > Project Addons
  3. Click the delete icon next to the repository
  4. Confirm the deletion

Note: Removing a repository requires redeployment for changes to take effect. Uninstall any installed addons from Odoo first to avoid errors.

OCA Modules with Special Requirements

Some OCA (Odoo Community Association) modules need extra Odoo server configuration to work correctly. OEC.sh detects these automatically during deployment.

OCA queue_job (Job Queue)

If your addon repositories contain the queue_job module, OEC.sh automatically:

  1. Adds queue_job to Odoo's server_wide_modules setting
  2. Appends a [queue_job] section to odoo.conf with sensible defaults:
    [queue_job]
    channels = root:2
    scheme = http
    host = localhost
    port = 8069

This configuration is required for queue_job to function — without it, Odoo loads the module but the job runner channel never starts.

Auto-detection happens at deploy time. OEC.sh scans the names of all addon modules in your repositories. When queue_job is found, you'll see a notice in the deployment log: "Auto-config: Auto-added 'queue_job' to server_wide_modules".

If you add queue_job to an existing environment, redeploy the environment to apply the configuration.

⚠️

The default channels = root:2 allows two concurrent jobs. For high-volume queues, you can override this in your environment's Advanced Config (Odoo Config section) by adding a custom [queue_job] section with a higher channel count.

Private Repository Authentication

For private repositories:

  1. First set up a Git connection in Settings > Git Connections
  2. When adding the addon repository, the smart selection workflow uses your connection automatically
  3. For manual entry, disable the "Public repository" toggle and select your connection
  4. The connection provides authentication during deployment

See the Git Connections guide for details on setting up authentication.