Another major step to consider in implementing Odoo 20 is the choice of the hosting environment. The hosting platform will determine how customizable Odoo is, who will perform updates and manage infrastructure, how development and testing are performed and what level of technical engagement will be required from your organization.
Odoo generally defines the following database types and hosting environments:
- SaaS - Odoo Online
- PaaS - Odoo.sh
- On-Premise – Odoo installed in your own infrastructure
- Others – Odoo installed outside Odoo's hosting platforms
SaaS is referred to by Odoo as an option mainly for standard Odoo use cases, PaaS as a platform for customized Odoo use cases and custom modules and On-Premise as an option to host customized Odoo yourself.
Understanding the difference between those options is critical for Odoo 20 implementation due to different technical requirements and upgrade considerations.
1. Odoo Online: SaaS
Odoo Online is an SaaS solution from Odoo. Odoo manages all the infrastructure requirements, so there is no need for the clients to install Odoo, set up the application server, and handle PostgreSQL databases.
It is mainly meant for businesses that can use the out-of-the-box applications of Odoo.
What can you customize?
Odoo Online provides for configuration, and Odoo Studio customization options allow users to change forms, fields, views, automation, reports, and other things without the need to have their own Odoo code base.
But here is a very important restriction:
Python modules and other third-party modules can’t be installed into Odoo Online.
According to Odoo’s official documentation, custom Python modules can’t be installed into the Odoo Online database.
This means that if your requirement is to implement a totally custom Odoo module or some changes to Python code on the server side, then Odoo Online isn’t the right platform for you.
Upgrades on Odoo Online
The upgrade mechanism is one of the most significant differences between SaaS.
Odoo Online uses Odoo's managed upgrade process. Upgrades can be automatic according to the chosen version and hosting configuration. Odoo advises differentiating the rolling version from the major version environment in which customers can stay on the major version longer.
This simplifies things for the customer in terms of infrastructure and maintenance; however, it means that customers have to be sure that their customizations done in Studio are compatible with the upcoming changes.
When does Odoo Online make sense?
Odoo Online would be an appropriate solution for:
- Small business
- Startup
- Firms using mainly Odoo standard apps
- Teams requiring less infrastructure management
- Enterprises with few customization needs
- Businesses preferring Odoo to handle upgrades and infrastructure
2. Odoo.sh: PaaS
Odoo.sh is Odoo’s PaaS (Platform as a Service).
It falls somewhere between Odoo Online and Odoo On-Premise. In Odoo.sh, Odoo hosts the underlying hosting platform, whereas the customer along with its implementation team enjoys high-level control over source code and development/testing processes.
Odoo promotes Odoo.sh, particularly for customization and third-party modules.
Custom modules and Git integration
Different from Odoo Online, Odoo.sh provides the ability to deploy custom Odoo modules.
Some standard development process flow would involve:
Git repository > Development branch > Staging branch > Production branch
This makes Odoo.sh especially helpful for businesses that work with Odoo development and implementation agencies.
Odoo.sh provides support for development, staging, and production branch phases.
Staging branches
Staging branches have been one of the best features of customized Odoo projects.
It provides users the ability to test new functionality and customization using a copy of the production database without making any changes to the live production instance.
Odoo.sh prevents staging databases from running any scheduled tasks and email interception, making it easy for teams to test new functionality without accidentally sending production emails and automated processes.
Other staging branches can also be created based on the Odoo.sh subscription.
Performance on Odoo.sh
Odoo.sh has the following configurable options for production deployments.
One may, for instance, increase database workers if the project requires handling more simultaneous connections. Increasing workers doesn’t automatically solve all problems. According to Odoo documentation, low performance can be related to poor coding practices and customization of the system.
It is especially crucial for highly customized Odoo projects.
There are several aspects affecting performance, namely:
- Size of the database
- Amount of concurrent users
- Amount of workers
- Quality of custom modules
- Scheduled tasks
- Reporting
- Postgres SQL queries
- Integrations
- Big amounts of data
- Traffic on the website
That’s why picking Odoo.sh doesn’t exempt one from proper Odoo performance optimization.
Backups on Odoo.sh
Automated production backups are available through Odoo.sh.
According to Odoo’s documents, a production backup involves a dump of the database, filestore, logs, and sessions. These backups are performed every day, week, and month as per the Odoo backup policy.
This offers an effective recovery process for businesses without having to create a backup process of their own.
It is essential to know what type of environments are being backed up and for how long. According to Odoo, the staging and development databases do not get backed up like the production branch.
3. On-Premise: Full Infrastructure Control
In On-Premise, Odoo will be installed and hosted on infrastructure owned by the customer or an external hosting provider.
This would include:
- Physical Server
- Private Data Center
- Virtual Machine
- Private Cloud
- Public Cloud Infrastructure owned by the customer’s technical team
On-Premise gives you the highest control over the infrastructure among all three main hosting options for Odoo.
Control Over:
- Odoo Source Code
- Odoo Modules
- PostgresSQL
- Configuration of the server
- Operating System
- Reverse Proxy
- Backups
- Monitoring
- Infrastructure Security Configuration
- Deployment and Upgrade Process
- External Integrations
However, the catch here is that you own the technical responsibility as well.
4. Odoo 20 Server Requirements for On-Premise
Odoo 20 needs appropriate server and database configuration.
An important update in Odoo 20 is PostgreSQL dependency.
Odoo 20 needs at least PostgreSQL 16 and above.
Organizations that plan to take advantage of AI in Odoo 20 need the PostgreSQL extension called pgvector.
According to the Odoo installation guide, pgvector is needed for Odoo 20 AI functionality and is available for PostgreSQL 15 and above.
Therefore, a self-hosted Odoo 20 platform should be configured based on the following software stack:
- Odoo 20
- PostgreSQL 16 and above
- pgvector for AI if needed
- Python/runtime dependencies for Odoo 20
- Proper CPU and RAM allocation
- Enough SSD storage
- Database/filestore backups
- Network/Firewall setup
- SSL/TLS setup
- Monitoring/logging
- Disaster recovery
Specific requirements for CPU, RAM, workers, and storage depend largely on user numbers, workload, database size, integrations, and business processes.
5. Custom Modules vs Odoo Studio
An easy way to differentiate among the various hosting solutions would be by comparing their customizability.
| Capability | Odoo Online | Odoo.sh | On-Premise |
| Standard Odoo Apps | Yes | Yes | Yes |
| Odoo Studio | Yes | Yes | Yes |
| Studio-based customization | Yes | Yes | Yes |
| Custom Python modules | No | Yes | Yes |
| Third-party Python modules | No | Yes | Yes |
| Git-based development | No | Yes | Customer-controlled |
| Server-level access | No | Managed platform access | Full customer control |
| Custom PostgreSQL extensions | No customer control | Platform-dependent | Yes |
| Full server customization | No | Limited to platform | Yes |
The major difference is that Studio customization is different from custom module development.
The studio is helpful when requirements are achievable using Odoo configurations and customization capabilities. However, in case there is a requirement for any Python coding or third-party modules involving Python codes, Odoo.sh or On-Premise version will be needed.
6. Upgrade Responsibility
Upgrade is the other critical factor that needs to be considered when choosing an Odoo hosting approach.
Odoo Online
Odoo takes care of hosting and the upgrade process. Online databases can be upgraded using Odoo’s managed environment, and the SaaS hosting may require automatic upgrades during the release process.
This reduces the workload on the infrastructure of the client but gives less control on the upgrade schedule.
Odoo.sh
Odoo.sh offers an integrated upgrade process.
In the case of customized databases, the custom module source code should be compatible with the Odoo version targeted. Odoo.sh uses Odoo’s upgrade infrastructure and enables testing of upgraded databases through branches before going into production.
This works very well for companies with custom development, as developers can ensure and rectify module compatibility before the production upgrade.
On-Premise
On-Premise offers the best upgrade schedule control.
Responsibilities of the customer or implementation team include:
- Preparing the server
- Preparing custom modules
- Requiring or doing the upgrade
- Migrating the database
- Testing the customizations
- Validating the integrations
- Upgrading the database
- Preparing the rollback and backups
Odoo provides tools for upgrading, but the responsibility of the infrastructure and the deployment lies with the company running the server.
7. Odoo Online vs Odoo.sh vs On-Premise
The below table highlights the key distinctions.
| Factor | Odoo Online | Odoo.sh | On-Premise |
| Hosting model | SaaS | SaaS | Self-hosted |
| Infrastructure management | Odoo | Odoo | Customer/hosting provider |
| Standard Odoo | Yes | Yes | Yes |
| Studio | Yes | Yes | Yes |
| Custom modules | Not supported | Supported | Supported |
| Third-party modules | Limited by platform restrictions | Supported | Supported |
| Git workflow | No | Yes | Customer-controlled |
| Development branches | No | Yes | Customer-controlled |
| Staging | Limited compared with Odoo.sh workflow | Built-in staging branches | Customer must build/manage |
| Production backups | Managed by Odoo | Automated Odoo.sh backups | Customer responsibility |
| Server access | No | Platform-level tools | Full |
| PostgreSQL management | Odoo | Odoo | Customer |
| Upgrade control | Most managed | Shared/platform-assisted | Customer-controlled |
| Infrastructure responsibility | Low | Medium | High |
| Customization flexibility | Lower | High | Highest |
| Technical administration | Low | Medium | High |
8. Decision Matrix by Company Size
The size of the company, however, should not be the only factor to consider when making a decision regarding the hosting model. Just as important are such factors as customization, IT capabilities within the company, compliance, and anticipated growth.
Nevertheless, the table below is a good starting point.
| Company Profile | Typical Requirement | Suitable Hosting to Consider | Why |
| Small business | Standard Odoo, few customizations | Odoo Online | Low infrastructure responsibility |
| Small business with custom development | Custom modules and third-party apps | Odoo.sh | Supports custom code and managed hosting |
| Growing company | Multiple users, integrations, custom workflows | Odoo.sh | Combines development flexibility with managed infrastructure |
| Mid-size company | Significant customization and development team | Odoo.sh / On-Premise | Depends on infrastructure and control requirements |
| Large enterprise | Complex integrations, security policies, infrastructure control | On-Premise / Odoo.sh | Requires evaluation of control, compliance, and operational needs |
| Enterprise with dedicated IT team | Custom infrastructure, advanced integrations, PostgreSQL control | On-Premise | Maximum infrastructure control |
| Company with minimal IT resources | Standard functionality and limited customization | Odoo Online | Less infrastructure administration |
| Development-heavy Odoo implementation | Many custom modules and continuous development | Odoo.sh | Git, development branches, staging, and production workflow |
The matrix must be viewed as a guidepost rather than an absolute law. For instance, a company that consists of twenty users and engages in heavy customization may have entirely different hosting needs than a company that has two hundred users and uses standard Odoo.
9. What About "Other"?
The database type in Odoo can be classified as Other, which will mean that the databases will be hosted not in the Odoo-hosted environments.
An example might be when the organization hosts Odoo in its own cloud environment or some other third-party hosting service.
This choice might mean extra hosting options, but it will also require that the organization be clear about what they have responsibility for:
- Server availability
- PostgreSQL management
- Security
- Backup
- Monitoring
- Disaster recovery
- Upgrades
- Performance
- Deployment of custom modules
And so on.
Easy Instance: A Convenient Way to Deploy Odoo
Easy Instance is another solution for companies wishing to deploy Odoo without using the Odoo's SaaS platform or Odoo.sh hosting while reducing the complexity in management of the instance. It may be beneficial for businesses that have more requirements for Odoo compared to Odoo Online, like custom modules and configurations of the servers, but at the same time not willing to create the whole infrastructure of hosting for Odoo on their own. Depending on the hosting type, Easy Instance will allow to have a more convenient way of deployment and management of Odoo while remaining flexible in terms of control over the environment. However, the company should consider the options for backup, security, updates, monitoring, resources, and customization before choosing Easy Instance as a solution.
When to Consider Easy Instance
Easy Instance may be considered by the companies if there is a need for balancing convenience and control. It may be appropriate for those companies that need some custom development on Odoo but wish to have an easier way of Odoo hosting than having self-hosting of On-Premise server.
10. Which Hosting Model Should You Choose for Odoo 20?
It is not possible to choose one hosting for all Odoo implementations.
If your company does not require any technical administration and is focused on the standard Odoo features, Odoo Online will be the right managed SaaS hosting choice for you.
If your company has its custom modules and other third-party applications, uses Git for developing and has the need to work with the development and the staging branch, Odoo.sh offers you an opportunity to do so.
If your company is looking for full control over the infrastructure and has custom PostgreSQL configurations, Odoo On-Premise hosting will give you this opportunity.
It is easy to make the choice following the formula:
Standard Odoo - Odoo Online
Custom Odoo development - Odoo.sh
Full control over the infrastructure - On-Premise
What is the main thing about choosing hosting? The most important thing is to choose the right hosting model for your company depending on your customization, infrastructure, security, development and upgrade needs.
The choice between Odoo Online, Odoo.sh, and On-Premise is a matter of control versus operational burden.
Odoo Online takes away from you the management of your infrastructure but restricts customization on the server side. Odoo.sh brings customization, Git processes, staging environments, backups, and managed infrastructure. On-Premise gives the most flexibility regarding Odoo configuration, PostgreSQL management, deployment, and updates, yet it forces you to manage the infrastructure yourself or through your hosting partner.
In the case of Odoo 20 implementation projects, considering the above differences beforehand will help avoid expensive switching of your hosting at a later stage.ws.
To read more about A Complete Comparison Guide to Odoo Deployment Options, refer to our blog A Complete Comparison Guide to Odoo Deployment Options.