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:
- Platform Addons: Available to all organizations (managed by portal admins)
- Organization Addons: Shared across all projects in your organization
- 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:
- Go to Settings > Addon Repos tab
- Click Add Repository
- Step 1: Select a Git connection
- Step 2: Select a repository from your connection
- Step 3: Select a branch
- Step 4: Configure details (name is auto-filled)
- 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:
- Click Enter URL manually instead (or if no connections exist, this is shown by default)
- Enter the Git repository URL (e.g.,
https://github.com/org/repo.git) - Enter the Git branch name
- Fill in the name and optional description
- Toggle Public repository if no authentication is needed
- Click Save
Add Project-Specific Addon Repository
- Open your project
- Go to the Settings tab
- Scroll to Project Addons
- Click Add Repository
- Enter the repository details:
- Git URL: The repository URL
- Branch: The Git branch to use
- Priority: Controls loading order (lower = higher priority)
- 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:
- Open your project
- Go to the Settings tab
- Find the Shared Addons section
- Click Browse Addons to open the selection modal
- Use the search and filter options to find addons
- Select the addons you want to include
- 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:
- Clones all selected addon repositories
- Installs Python dependencies from
requirements.txt(if present) - Installs system packages from
apt.txt(if present) - Configures Odoo's addon path to include all repositories
- 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
- Go to your Environment > Repositories tab
- Find the addon repository you want to exclude
- Toggle the switch to OFF (disabled state)
- Click Save Changes
- 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:
- Go to your Environment > Repositories tab
- Find the addon repository you want to override
- Click the Branch dropdown
- Select a different branch (e.g.,
19.0-devinstead of19.0) - Click Save Changes
- 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
- Go to Settings > Addon Repos
- Find the repository you want to remove
- Click the delete icon
- Confirm the deletion
Remove from Project
- Open your project
- Go to Settings > Project Addons
- Click the delete icon next to the repository
- 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:
- Adds
queue_jobto Odoo'sserver_wide_modulessetting - Appends a
[queue_job]section toodoo.confwith 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:
- First set up a Git connection in Settings > Git Connections
- When adding the addon repository, the smart selection workflow uses your connection automatically
- For manual entry, disable the "Public repository" toggle and select your connection
- The connection provides authentication during deployment
See the Git Connections guide for details on setting up authentication.