Enable Dark Mode!
how-to-choose-the-right-hosting-for-odoo-20-online-odoosh-or-on-premise.jpg
By: Ayana R

How to Choose the Right Hosting for Odoo 20: Online, Odoo.sh, or On-Premise

Technical Odoo 20 Odoo Sh

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.

CapabilityOdoo OnlineOdoo.shOn-Premise
Standard Odoo AppsYesYesYes
Odoo StudioYesYesYes
Studio-based customizationYesYesYes
Custom Python modulesNoYesYes
Third-party Python modulesNoYesYes
Git-based developmentNoYesCustomer-controlled
Server-level accessNoManaged platform accessFull customer control
Custom PostgreSQL extensionsNo customer controlPlatform-dependentYes
Full server customizationNoLimited to platformYes

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:

  1. Preparing the server
  2. Preparing custom modules
  3. Requiring or doing the upgrade
  4. Migrating the database
  5. Testing the customizations
  6. Validating the integrations
  7. Upgrading the database
  8. 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.

FactorOdoo OnlineOdoo.shOn-Premise
Hosting modelSaaSSaaSSelf-hosted
Infrastructure managementOdooOdooCustomer/hosting provider
Standard OdooYesYesYes
StudioYesYesYes
Custom modulesNot supportedSupportedSupported
Third-party modulesLimited by platform restrictionsSupportedSupported
Git workflowNoYesCustomer-controlled
Development branchesNoYesCustomer-controlled
StagingLimited compared with Odoo.sh workflowBuilt-in staging branchesCustomer must build/manage
Production backupsManaged by OdooAutomated Odoo.sh backupsCustomer responsibility
Server accessNoPlatform-level toolsFull
PostgreSQL managementOdooOdooCustomer
Upgrade controlMost managedShared/platform-assistedCustomer-controlled
Infrastructure responsibilityLowMediumHigh
Customization flexibilityLowerHighHighest
Technical administrationLowMediumHigh

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 ProfileTypical RequirementSuitable Hosting to ConsiderWhy
Small businessStandard Odoo, few customizationsOdoo OnlineLow infrastructure responsibility
Small business with custom developmentCustom modules and third-party appsOdoo.shSupports custom code and managed hosting
Growing companyMultiple users, integrations, custom workflowsOdoo.shCombines development flexibility with managed infrastructure
Mid-size companySignificant customization and development teamOdoo.sh / On-PremiseDepends on infrastructure and control requirements
Large enterpriseComplex integrations, security policies, infrastructure controlOn-Premise / Odoo.shRequires evaluation of control, compliance, and operational needs
Enterprise with dedicated IT teamCustom infrastructure, advanced integrations, PostgreSQL controlOn-PremiseMaximum infrastructure control
Company with minimal IT resourcesStandard functionality and limited customizationOdoo OnlineLess infrastructure administration
Development-heavy Odoo implementationMany custom modules and continuous developmentOdoo.shGit, 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.


Frequently Asked Questions

Can I install custom Odoo modules in Odoo Online?

No. Odoo Online does not allow the installation of any custom modules in the form of custom Python modules or third-party modules that need server-side Python code. However, you can use Odoo Studio for any customization that it allows.

Which is better for custom Odoo development, Odoo Online or Odoo.sh?

They have different uses. While Odoo Online is meant to be used for the regular Odoo application, Odoo.sh is meant for custom modules, Git development, staging, branches, and development.

What is the required PostgreSQL version for Odoo 20?

For Odoo 20, you will need PostgreSQL 16 or higher. For the AI feature in Odoo, you need pgvector PostgreSQL.

If you need any assistance in odoo, we are online, please chat with us.



0
Comments



Leave a comment



WhatsApp