Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/odoo/documentation/llms.txt

Use this file to discover all available pages before exploring further.

Odoo.sh is Odoo’s official Platform-as-a-Service (PaaS) cloud environment for hosting and managing Odoo applications. It integrates natively with GitHub to give development teams automated builds, staging environments, continuous integration pipelines, SSH access, and one-click database management — all without managing server infrastructure.

Core Components

Odoo.sh is built around three interconnected components that form a pipeline from code development to a live business deployment:

GitHub Repository

Version-controlled storage for your Odoo application source code. Tracks every change, supports collaboration, and can be public or private.

Odoo.sh Project

The PaaS layer that integrates with GitHub. Includes automated backups, branch-based staging environments, and continuous integration pipelines.

Odoo Database

Stores all operational data — business records, configurations, and user data — generated by your Odoo applications.

User Types

GitHub Users

Developers with access to the linked GitHub repository. Repository access does not automatically make someone an Odoo.sh collaborator.

Odoo.sh Collaborators

Individuals managing the Odoo.sh project, each linked to a GitHub user. Collaborators are distinct from database users.

Database Users

End-users of the deployed Odoo database. They interact with the live system but are not involved in project management or development.

Creating a Project

1

Visit Odoo.sh and deploy

Go to odoo.sh and click Deploy your platform.
2

Sign in with GitHub

Authenticate with your GitHub account and click Authorize odoo twice to grant the necessary permissions.
Odoo.sh requests GitHub permissions to access your login and email, create or access repositories, create webhooks, and commit changes for deployment.
3

Fill in the deployment form

Complete the Deploy your platform form:
  • GitHub repository: choose New repository (enter a name) or Existing repository (select one).
  • Odoo Version: select the major version to use.
  • Subscription Code: enter your Odoo Enterprise subscription code (also called the subscription referral, contract number, or activation code).
  • Hosting location: select the region where your platform will be hosted.
4

Click Deploy

Submit the form. Your platform will be provisioned and your first build will start automatically.
Use the latest major version of Odoo when creating a new repository. If you plan to migrate from Odoo Online, create your database at odoo.com/start-lts to ensure compatibility, since minor (SaaS) versions are not supported on Odoo.sh.

Branch Stages

Odoo.sh organizes branches into three stages. You can change a branch’s stage by dragging and dropping it in the Branches view.
The production branch runs the live database. There can only be one production branch per project.
  • Pushing a commit updates the production server with the new code and restarts it.
  • To trigger an automatic module update (e.g., after changing a form view), increment the module version in __manifest__.py. The platform will update the module, briefly taking the instance offline.
  • If a push causes the server to fail to restart or a module update fails, the platform automatically reverts to the last successful revision and rolls back the database.
  • Odoo.sh automatically backs up the production database, retaining 7 daily, 4 weekly, and 3 monthly backups. Each backup includes the database dump, filestore, logs, and sessions.
On trial projects, the production branch and all staging branches are automatically reset to the development stage after 30 days.

Builds

A build is a database loaded by an Odoo server running a specific revision of your repository in a containerized environment. Builds are created automatically when commits are pushed to any branch. Build statuses:
  • 🟢 Successful — no errors or warnings during creation.
  • 🟡 Almost successful — warnings occurred, but no errors.
  • 🔴 Failed — errors occurred during creation.
From the Builds view you can:
  • Connect to a build’s database as administrator or as another user.
  • View logs, access the web shell, open the online editor, view outgoing emails (staging/development), monitor resources, and download a database dump (production/staging).
  • Rebuild a branch using its latest revision.

Collaborator Roles

Access to Odoo.sh features is controlled by collaborator roles. Add a collaborator by entering their GitHub username in Settings → Collaborators. By default, new collaborators are granted the Developer role. Use the dropdown to assign a different role.
  • Admin: full access to all Odoo.sh features and tools, including project settings. Intended for project managers.
  • Tester: access to staging and development databases and their tools. Intended for user acceptance testing (UAT). Testers cannot access the production database through Odoo.sh tools.
  • Developer: access to development databases only. Developers cannot connect to production or staging databases and do not have access to the web shell or server logs for those stages.
RoleProductionStagingDevelopmentSettings
Developer❌ No access⚠️ History only✅ Full access
Tester❌ No access✅ Full access✅ Full access
Admin✅ Full access✅ Full access✅ Full access

Importing a Database

Once your platform is deployed, you can import an existing database, provided it runs a supported version of Odoo.
1

Download a backup

From on-premise: Go to /web/database/manager on your Odoo instance, click Backup, and select zip (includes filestore) as the format.From Odoo Online: Sign in to My Databases, click the gear icon next to your database, and select Download.
Only major versions of Odoo are compatible with Odoo.sh. If your Odoo Online database is on a minor version (e.g., 16.3), you must upgrade to the next major version first.
2

Upload to Odoo.sh

In your Odoo.sh project, go to the Backups tab of your Production branch and click Import Database.
Importing a backup overwrites all data in the branch. Download a manual backup first if you need to preserve existing data. The import process requires four times the dump size in available storage.
3

Check outgoing mail servers

After importing, all previously configured outgoing mail servers are disabled. The default Odoo.sh mail server is used instead. Navigate to Settings → Technical → Email: Outgoing Mail Servers (with developer mode enabled) to verify.
Port 25 is permanently closed. Use port 465 or 587 for external SMTP connections.
4

Re-enable scheduled actions

Scheduled actions are disabled by default after import to prevent mass emails or third-party sync operations from firing. Re-enable only the ones you need via Settings → Technical → Automation: Scheduled Actions.
5

Register the subscription

After import, the database is treated as a duplicate and unlinked from your Enterprise subscription. If this will be your production database, unlink the previous database from the subscription and register the new one.

Submodules

Git submodules let you include modules from other repositories in your Odoo.sh branches without copy-pasting code. Odoo.sh automatically detects submodule modules and adds them to the addons path. Adding a submodule via the Odoo.sh UI (public repositories only):
  1. In the Branches view, select the target branch.
  2. Click the Submodule button in the upper-right corner, then click Run.
  3. Fill in the Repository URL (SSH), Branch, and Path.
Adding a submodule via Git (all repositories):
# Checkout the branch where you want to add the submodule
git checkout <branch>

# Add the submodule (replace the URL with the SSH URL of the repository)
git submodule add -b <branch> <git@yourprovider.com>:<username/repository.git> <path>

# Commit and push
git commit -a && git push -u <remote> <branch>
For private repositories added as submodules, configure a deploy key in your Odoo.sh project settings and in the repository settings — otherwise Odoo.sh cannot download them.

SSH Access

SSH access lets you connect directly to your build’s container for debugging and administration. Configure your SSH keys in your Odoo.sh account settings and connect using the SSH command shown in the branch’s tools menu.

Upgrading on Odoo.sh

Odoo.sh integrates with the Odoo upgrade platform. The latest production daily backup is sent to the upgrade platform automatically. Once upgraded, the branch enters a special mode where each new commit triggers a restore of the upgraded backup plus an update of all custom modules. The upgrade log is available at ~/logs/upgrade.log in the newly upgraded staging build. See the Upgrade documentation for the full process.

Build docs developers (and LLMs) love