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.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.
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
Visit Odoo.sh and deploy
Go to odoo.sh and click Deploy your platform.
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.
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.
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.- Production
- Staging
- Development
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.
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.
- 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.
| Role | Production | Staging | Development | Settings |
|---|---|---|---|---|
| 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.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.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.
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.
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.
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):- In the Branches view, select the target branch.
- Click the Submodule button in the upper-right corner, then click Run.
- Fill in the Repository URL (SSH), Branch, and Path.
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.