Add a Custom Module
This tutorial shows you how to add a custom Odoo module to your Skysize deployment. There are two approaches depending on whether the module lives in a separate repository or directly in your project repository.
Time to complete: ~15 minutes
What you need:
- A project already deployed on Skysize (Deploy Your First Instance)
- A custom Odoo module (your own code, or a community module from OCA)
How custom modules work on Skysize
Skysize scans the root of your repository for Odoo modules by default. If your module is at the root, it will be picked up automatically with no extra configuration.
If your modules are in a subdirectory, or in a separate repository, you need to configure the Custom Addons Path on your branch to tell Skysize where to look.
Custom modules are made available on the server but are not installed automatically. After deploying, you must install them from the Odoo Apps menu.
Option A — Module in your own repository
Use this approach when your custom module is stored directly inside your project repository.
1. Add your module to the repository
Place your module anywhere in the repository. The simplest layout is at the root:
my-odoo-repo/
├── my_module/
│ ├── __manifest__.py
│ └── ...
└── ...
With this layout, no further configuration is needed — Skysize will find my_module automatically. Commit and push, then skip to Install the module in Odoo.
If you prefer to keep modules in a subdirectory:
my-odoo-repo/
├── custom_addons/
│ └── my_module/
│ ├── __manifest__.py
│ └── ...
└── ...
Then you need to configure the addons path as described in the next step.
2. Configure the addons path (subdirectory only)
-
Go to your project and open the Branches tab.
-
Click on your branch to open its settings.
-
Find the Custom Addons Path field.
-
Enter the path to the directory that contains your module(s). Paths must start with
/and are relative to the root of your repository:/custom_addonsFor modules spread across multiple directories, separate them with commas:
/custom_addons,/extra_addons -
Click Save and push a commit to trigger a new deployment.
Install the module in Odoo
- Open your Odoo instance.
- Go to Settings → Apps (enable developer mode if the app is not visible: Settings → Activate the developer mode).
- Search for your module and click Install.
Option B — Module in a separate repository (Git submodule)
Use this approach when your custom module lives in its own repository — for example, an OCA community module or an internal module shared across multiple projects.
Skysize only supports public submodule repositories. Private submodule repositories are not supported at this time.
1. Add the submodule via terminal
In your local clone of your project repository, run:
git submodule add https://github.com/OCA/web.git addons/oca_web
git add .gitmodules addons/oca_web
git commit -m "Add OCA web submodule"
git push
This adds the external repository as a subdirectory at addons/oca_web. Skysize automatically initializes all submodules on every deployment.
2. Add the submodule via GitHub web interface
If you prefer not to use the terminal, you can add a submodule by manually creating the .gitmodules file:
-
In your repository on GitHub, click Add file → Create new file.
-
Name the file
.gitmodules(or edit it if it already exists). -
Add the following content:
[submodule "addons/oca_web"]
path = addons/oca_web
url = https://github.com/OCA/web.git -
Commit the file.
-
Next, create the submodule directory reference. In GitHub, navigate to your repository root and click Add file → Create new file.
-
Name the file
addons/oca_web/.gitkeepand commit it.
The GitHub web interface has limited support for submodules. For anything beyond a simple setup, using the terminal is strongly recommended.
3. Configure the addons path in Skysize
Since the submodule is in a subdirectory, you need to set the addons path:
-
Go to your project and open the Branches tab.
-
Click on your branch to open its settings.
-
In the Custom Addons Path field, enter the path to the submodule directory:
/addons/oca_web -
Click Save.
4. Redeploy and install
Push a commit to trigger a new deployment. Skysize will initialize the submodule during the build, making the module available. Then install it from the Odoo Apps menu as described above.
Troubleshooting
Module does not appear in the Apps menu
- Make sure developer mode is enabled in Odoo (Settings → Activate the developer mode).
- If your module is in a subdirectory, verify the Custom Addons Path is set and matches the actual directory structure (paths are case-sensitive).
- Check the deployment logs for any errors related to module loading.
Submodule directory is empty after deployment
- Confirm that the submodule repository URL is publicly accessible without authentication.
- Verify that the
.gitmodulesfile is committed and the submodule path is correct.