For customers using the Standard plan, we put some memory and CPU-usage limits in order to ensure a fair use of server resources.
This means that idle Odoo workers may be terminated after a reasonable amount of time, or when using excessive amounts of CPU time or RAM. Hence, some (very) long-lasting operations may not complete. Please ask us for a Dedicated hosting plan if you think your business requires higher resource allocation.
The usage of Odoo.sh is subject to the same Acceptable Use Policy than the usage of Odoo Online.
Yes, the containers have a (nearly) unrestricted access to the Internet.
587are (and will stay) closed. If you want to connect to an external SMTP server, it must listen to another port.
- Long-living connections may not survive to worker recycling. We discourage you to implement long-living connections to external services.
Yes ! The platform will automatically detect your addons folders based on the manifest files (
__manifest__.py) of each addon.
This is actually how submodules work: If you add a repository containing Odoo addons as a submodule of your branch, the folder holding the submodule will be detected as an addons folder to include in the addons path of your database.
git submodule allows you to integrate other Git projects into your code, without the need to copy-paste all the code (in short).
Github private repositories require a few more steps in order to configure properly your submodules. They ensure that Odoo.sh will be able to fetch your private code.
- Go to your Odoo.sh project Settings then look for the Submodules section.
- Paste the URL of your sub-repository (eg:
email@example.com:USERNAME/REPOSITORY.git) and click on Add.
- Copy the Public key (it should look like
- Go to your sub-repository Settings page on Github then look for the Deploy keys tab.
- Click on Add deploy key and paste the public key into the Key field. You can add "Odoo.sh" as title and save.
- Now follow the steps described hereunder for the Public repositories.
Here are the steps to add your sub-repository as a submodule of your Odoo.sh project (you don't need to set up a deploy key for public repositories).
- Let your project "know" that you require a submodule:
git submodule add -b BRANCH firstname.lastname@example.org:USERNAME/REPOSITORY.git PATH.
- Commit this change and push it:
git commit -a && git push -u origin master.
- Wait while Odoo.sh builds your project... and it's done!
You can define
requirements.txt files in your branch holding the python dependencies your project relies on.
These requirements files can be placed in the root of the folders containing your addons.
The platform will then install the dependencies for each build.
This is currently not possible to install system packages (e.g. apt packages).
Nevertheless, if the package could be useful for more than one project, we can consider to install it by default for everyone. Same goes for python modules requiring system packages for their compilation. In such a case, leave us a feedback.
Yes, there is an API to interact with your Odoo databases hosted on Odoo.sh.
Each Odoo build comes with an XML-RPC interface. It allows you to interact from an external application. You can find here the documentation for the Odoo API.
In order to connect to your database, you will need:
- the database URL (eg:
- the port number is
- the database name can be found in the shell by typing psql and checking the prompt invite name (the part before the =>)
- the login and password for the desired user
If you are looking for an API to interact with the Odoo.sh platform (eg: creating a new project, new branches or requesting a rebuild), this is not planned to be developed for now.
Deleting the Github repository does not delete the project, for the simple reason that an accidental deletion of the repository could potentially drop a production database without any warning.
If you wish to create another project, you must first delete the old one. You can do so by going to the page https://www.odoo.sh/project/<your_project>/settings and follow the deletion procedure at the bottom of the page.
Support for other SCM such as Gitlab, Bitbucket... might land in Odoo.sh at some point in the future but these are currently considered as a low priority in the Odoo.sh features wishlist.
That said, you still have a mean to use a repository hosted by another provider than Github on Odoo.sh by using an intermediate Github repository which links to your repository through a submodule. This is less comfortable than using Gitlab, Bitbucket... directly but this is a workaround you'd want to consider.
All development instances are accessed using the usual demo data credentials:
When a branch is switched to production, the credentials are admin/admin.
You then have to set them up yourself as you would on an on-premise installation.
Once the production database is set, every staging branch will be a duplicate of the production database, including the users & credentials.
Yes, but ports
587 are not allowed.
For more information, refer to the question Do I have Internet access on Odoo.sh containers?
Builds are garbage collected after some time to make room for new development builds (production instances are, naturally, excluded from this process).
If you wish to rebuild an instance for an existing branch, you can use the "Rebuild" button on the Builds page.
Development branches are always built with demo data installed. Only production branches are created completely empty.
The point of the development branches is to run the unit tests. Currently, in Odoo, these unit tests depends on the demo data.
In the future, if the test data get separated from the demo data, we would then consider the possibility to create development builds without demo data.
For Project Managers
- Partners: Freely.
- Enterprise customers: You must subscribe to Odoo.sh, meaning your enterprise subscription has to include Odoo.sh.
If the free offer for partners changes in the future, we guarantee that any project created under this offer will remain free for the same set of features.
When creating your project, if you have the error message:
The subscription <referral code> does not appear to be valid for Odoo.sh
It means your subscription is either not a partnership subscription, either this is an enterprise subscription which does not include Odoo.sh.
Yes, you can.
If you decide you no longer want your production database to be hosted by Odoo.sh, you can download a dump of your database and import it on your own Odoo server.
You can download a dump of your database at any time on the builds page of your project.
The Odoo releases used by Odoo.sh are the releases you can download and install on your own machines, and which are officially supported to be used as on-premise installation. For that matter, we do not plan to use the saas releases of Odoo, which are not meant to be installed on an on-premise installation.
For System Administrators
Yes, on production or staging branches under the backups tab you can import a database dump. Make sure it is of the requested format and runs on the same version of Odoo.
In the settings page of your project, under the section "Custom domains", you will be able to add custom domains for your production database.
Once your domain added to this list,
you will have to set the DNS entries in the manager of your domain name registrar.
Perform the following operations:
- Create a CNAME record www.yourdomain.com pointing to <yourdatabase>.odoo.com
- If you want to use the naked domain (e.g. yourdomain.com), you need to redirect yourdomain.com to www.yourdomain.com.
To enable SSL, you can use a third-party CDN service provider such as CloudFlare.com.
This is currently not possible to configure your own SSL certificates in the Odoo.sh platform. We are considering the feature.
Production builds are backuped every 24 hours.
We keep 14 full backups of each Odoo production instance for up to 3 months: 1/day for 7 days, 1/week for 4 weeks, 1/month for 3 months.
You can also download manual backups of your live data at any time using the "Download dump" button.
We do not backup nor ensure recovery for development builds, as they are assumed not to be used as persistent data storage