Odoo.sh versus on-premise hosting

Odoo.sh and on-premise both require the Custom plan, so the real choice is who operates the platform and how much control you keep over custom code, upgrade timing and extended support.

On this page

Odoo.sh versus on-premise hosting: which host fits your Odoo plan

If your Odoo plan needs custom modules, Odoo Studio or external API access, you are choosing between Odoo.sh and on-premise hosting, and both require the Custom plan. According to Odoo's pricing page, only Custom can be hosted on Odoo.sh or on-premise, and only Custom includes multi-company, Studio, external API access and custom modules. The decision is therefore not about features. It is about who operates the infrastructure, and how much control you keep over custom code, upgrades and extended support.

Hosting is harder to change later than it looks. Your choice sets the upgrade obligations you carry. On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years, so the upgrade calendar is set for you by the platform. On-premise, you control timing, but you also own the work of getting there. Standard support covers the first three years after a major release on all three hosting types, and paid extended support after that is limited to Odoo.sh for select versions and to on-premise. Moving from one host to another later means a migration project of its own, not a settings change.

Staffing follows from that choice. Odoo.sh shifts most infrastructure work to Odoo, including hosting, staging and backups as provided by the platform, while your team or partner still owns custom module code and upgrade testing. On-premise places the full stack in your hands: application servers, PostgreSQL, the filestore, reverse proxy, TLS, backups, patching and monitoring. Confirm with Odoo which of these services are included on Odoo.sh for your plan, and list who on your side can run a PostgreSQL restore or respond to a failed upgrade test.

Before choosing, ask four questions. Which custom modules and third-party modules must run, and do they need code access beyond what Odoo.sh permits? Which Odoo version will you run at go-live, and when does its standard support end? Who will apply security patches, and within what window will your security team require them? Where must data and backups physically reside under your own policies? Write the answers down, because they determine whether Odoo.sh or on-premise is the better fit.

Plan pricing, edition costs and implementation scope are covered on the sibling pages Odoo cost of ownership and editions and Odoo implementation plan and cost, so this section does not repeat them. Use those pages to compare subscription and hosting costs, and use this one to decide which operating model your team can sustain for the life of the plan.

Which host fits your control, upgrade and staffing needs

This table compares Odoo Online, Odoo.sh and self-hosting across plan requirements, control over custom code, mandatory upgrades, extended support, Enterprise needs and operating work. Read each row against your planned apps, custom modules and in-house operations capacity. Confirm current plan terms, hosting rules and support eligibility with Odoo for your edition before you commit.

FactorOdoo OnlineOdoo.shSelf-hosted on your infrastructure
Plan requirementOne App Free, Standard or Custom plan, per-user pricingCustom plan only, per Odoo's pricing pageCustom plan only, per Odoo's pricing page
Custom code controlLimited to what the Online service allowsCustom modules supported on Custom plan; confirm code deployment workflowFull control over custom modules and server configuration
Major upgradesMandatory every two years, handled by OdooMandatory every two years; plan test database runs before productionMandatory every two years; your team runs the upgrade service with a subscription
Extended supportNot available; SaaS versions cannot use extended supportPaid extended support for select versions; confirm eligibilityPaid extended support for select versions; confirm eligibility
Enterprise subscriptionIncluded in the hosted planRequired; confirm current terms with OdooRequired for Enterprise modules and the upgrade service
Operating work for your teamMinimal platform operations; you manage configuration and usersEnvironment management handled on the platform; you manage modules and releasesServers, PostgreSQL, backups, patching, TLS and monitoring sit with your team

What each hosting path depends on in Odoo

Odoo.sh and on-premise hosting both rest on a small set of product decisions: which plan unlocks each path, how Enterprise is activated, how installs and test copies are made, how upgrades run, and how users sign in. Each card names one of these dependencies and the check the team that runs the system should make before committing to a host.

Custom plan entitlements

According to Odoo's pricing page, only the Custom plan can be hosted on Odoo.sh or on-premise, and only Custom includes multi-company, Odoo Studio, external API access and custom modules. If your design needs any of those, the host choice is already limited to Custom. Confirm the current plan terms with Odoo before you finalize the architecture, because plan features and per-user prices change.

Enterprise subscription code activation

An on-premise Enterprise database is activated by entering a subscription code, so the subscription is a runtime dependency and not only a purchasing record. Someone on your team must hold the code, know which database it activates, and know what happens when the subscription changes. Ask Odoo how renewals and code replacement work before the first production install.

Packaged installers and source installation

Odoo documents both packaged installers and installation from source for on-premise deployments. Packaged installs are simpler to repeat, while source installs give more control over the Python and PostgreSQL versions and the code tree your team deploys. Choose one method early, because your upgrade rehearsals, patching routine and rollback steps will all depend on it.

Database duplication with neutralization

Odoo documents database duplication with neutralization for creating test copies. Neutralization disables features that could reach real customers or send live transactions, such as scheduled outgoing mail and payment connectors, so a copy of production can be used safely for testing. Verify which integrations and outgoing channels your database uses, then confirm the neutralized copy blocks each of them before anyone tests against it.

Upgrade service and upgraded test databases

The upgrade service moves a database to a newer supported version through an upgraded test database, which should be tested before production is switched. On-premise use requires an Enterprise subscription, and Community has no access to the service. On Odoo Online and Odoo.sh, major upgrades are mandatory every two years according to Odoo's upgrade documentation, so the test cycle becomes a recurring team task.

Standard and extended support windows

Odoo standard support covers the first three years after a major release on Odoo Online, Odoo.sh and on-premise, including security updates and bug fixes. Paid extended support after that is limited to Odoo.sh for select versions and to on-premise, and security patches are only provided during standard support. Map each installed version to its end date, and decide now who will pay for extended support or upgrade before that date arrives.

Supported sign-in methods

Odoo documents sign-in through LDAP, with optional user creation on first login from a template, along with Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication. On-premise teams own the directory connection and its failure modes, while Odoo.sh teams should confirm which methods the hosted environment exposes. Check how each method maps users to access groups before you choose one.

How to choose and stand up the host

This sequence takes an organization from an unresolved hosting question to a working Odoo environment with a known plan, a named upgrade owner and an agreed support window. It shows which requirements decide between Odoo.sh and on-premise, and what must be confirmed before any infrastructure is built.

  1. Inventory custom modules, Studio use and integrations

    Before choosing a host, list every custom module, every Odoo Studio customization, every external system that calls Odoo through its API, and every rule that requires data to stay in a specific country or network. Assign an owner to each item, usually the internal product owner with input from whoever maintains the code or integrations. This step is done when the list is written down, reviewed by both the business and IT, and each item is marked as needed, replaceable or retired. The list determines whether the Custom plan is required, because Odoo's pricing page places multi-company, Studio, external API access and custom modules in that plan only.

  2. Confirm plan and edition with Odoo in writing

    Ask Odoo, or the reseller or partner you buy through, to confirm in writing which plan and edition cover the requirements from the inventory. Ask specifically whether the chosen hosting model is available under that plan, whether Studio and external API access are included, and how Enterprise features are licensed for the hosting option you are considering. Keep the confirmation with the project record. The step is complete when the written answer names the plan, the edition and the hosting model, and matches what the inventory requires.

  3. Assign the upgrade owner and budget path

    Decide who will carry the major version upgrade work. On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years, so the upgrade is a recurring operational task on those hosts. On-premise, the organization chooses when to upgrade within the standard support window, which Odoo documents as three years after each major release. Name a person or team, state whether the work is done in house or by a partner, and note how custom modules will be ported. The step is complete when an owner, a funding route and a target upgrade window are recorded in the project plan.

  4. Select the host and confirm its support window

    Choose Odoo Online, Odoo.sh or on-premise hosting based on the inventory, the plan confirmation and the upgrade owner's capacity. For the chosen version, check the standard support end date in Odoo's support documentation, since Odoo 17.0 standard support ended in September 2026 and newer versions run for shorter or longer periods. Confirm that security updates are covered for the whole period you intend to run. Record the version, the end date and the hosting provider. The step is complete when the support window covers the planned go-live and the first upgrade cycle.

  5. Provision infrastructure and install Odoo on premise

    This step applies only to on-premise hosting. Provision the servers, PostgreSQL database, filestore storage, network access and backup targets in the approved location, then install Odoo from a packaged installer or from source, following Odoo's on-premise documentation for the chosen version. Enter the subscription code to activate the Enterprise database. Confirm that the application starts, that the database is reachable from the expected network segment only, and that the version number matches the one recorded in the previous step. Odoo.sh and Odoo Online skip this step because the provider runs the infrastructure.

  6. Create a neutralized test copy

    Duplicate the production or staging database into a test environment and neutralize it, so that scheduled actions, outgoing email and payment connectors do not run against live systems. Odoo documents database duplication with neutralization for this purpose. Load the custom modules into the test copy and confirm they install without errors. The step is complete when the test copy starts, the neutralization is verified by checking that outgoing mail and integration endpoints point to test targets, and the team agrees the copy is the place where future upgrades will be rehearsed.

  7. Configure sign-in and confirm user access

    Configure how users sign in. Odoo documents LDAP authentication, with optional user creation on first login from a template, along with Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication. Choose the method that matches the identity provider the organization already uses, and map users to the correct access groups before go-live. Test with one account per role, including an administrator, a standard user and a user who should be denied access to a restricted menu. The step is complete when each test account signs in through the chosen method, sees only the expected apps and menus, and the access results are recorded for the go-live sign-off.

What drives hosting effort and cost, and how to keep each down

This table lists the factors that change the effort of running Odoo on Odoo.sh or on your own infrastructure, and how each one shifts the hosting decision. Read each row for its effect, one practical way to reduce it, and what to ask a partner to quote. The main takeaway is that custom code, upgrade cadence and network controls usually matter more to the choice than raw server size.

DriverEffect on the hosting decisionHow to keep it down and what to ask a partner to quote
Custom modulesOdoo.sh and on-premise both need the Custom plan for custom modules. Each module must be ported at every major upgrade, so depth of customization drives recurring effort on either platform.Keep customizations small and use configuration or Studio where possible. Ask for a quote that counts modules by depth, separates porting effort per upgrade and names any third-party modules.
Environments and test copiesOdoo.sh provides staging and development branches as part of the platform. On-premise requires you to build and maintain staging, including neutralized database copies for testing.Limit the number of long-lived environments and refresh test copies on a schedule. Ask the partner to quote setup, the duplication and neutralization process, and who runs refreshes.
Data residency and network controlsOdoo.sh runs in Odoo-managed infrastructure, which may not meet residency or private network rules. On-premise lets you control location, network segmentation and access paths, at the cost of owning them.Confirm residency and network requirements before choosing a platform. Ask the partner to quote the network design, firewall rules, reverse proxy and TLS setup, and the evidence you will receive.
Integrations to external systemsEach external system (banking, eCommerce, logistics) adds credentials, endpoints and monitoring. On-premise lets you place integration services on your network, while Odoo.sh requires you to confirm outbound connectivity and access to private systems.Document each integration, its data flow and its failure handling before hosting decisions are made. Ask for a quote that covers connectivity testing, secrets handling and monitoring for each integration.
Sign-in provider complexityOdoo documents LDAP, Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication. LDAP usually requires a route from the Odoo host to your directory, which is simpler on-premise and needs confirmation on Odoo.sh.Choose one primary identity provider and limit extra sign-in methods. Ask the partner to quote the identity configuration, access group mapping, and the directory connectivity design for your chosen platform.
Staff skills in Linux, PostgreSQL and PythonOn-premise hosting depends on in-house skills in Linux administration, PostgreSQL backups and tuning, and Python for troubleshooting. Odoo.sh shifts most server administration to the platform, while your team still needs Python and Odoo skills.Assess your team's skills honestly before choosing on-premise. Ask for a quote that states which tasks the partner performs, which your staff keeps, and what knowledge transfer is included.
Upgrade frequency and extended supportOdoo.sh and Odoo Online must take major version upgrades every two years, and SaaS versions are released every two to three months. On-premise and select Odoo.sh versions can use paid extended support after standard support ends, which affects how long you can stay on a version.Plan upgrades inside the standard support window and test them on an upgraded test database before production. Ask the partner to quote upgrade cycles, porting effort per module and whether extended support is available for your version on your platform.
Edition and planOnly the Custom plan can be hosted on Odoo.sh or on-premise. On-premise Enterprise use requires a subscription code, and Community has no access to the upgrade service.Confirm the edition and plan that match your hosting choice before design begins. Ask for a quote that lists subscription, plan and upgrade service costs separately from hosting work.

How the host choice changes by environment

Odoo.sh is Odoo's managed hosting for Odoo databases and custom code. Odoo operates the platform, so your team manages the application, its modules and its data rather than the underlying servers. This model is only available on the Custom plan, which is also the plan that includes custom modules, Odoo Studio, multi-company and external API access.

What you control:

  • Your Odoo database content, configuration and the custom modules you deploy
  • Branch and staging workflows for code changes, as documented for the platform
  • Who holds administrator and developer access inside Odoo

What Odoo operates:

  • Servers, networking, backups and platform patching at the hosting layer
  • Standard support for the version you run, including security updates and bug fixes for three years after a major release
  • Mandatory major version upgrades, which occur every two years on Odoo.sh

Test copies and upgrade testing: Test copies are created on the platform, and upgrade testing runs against an upgraded test database before production is moved. Confirm the exact copy and staging options available on your plan.

Before choosing this model, confirm with Odoo the data residency location, backup retention, restore process, available support for your version, and any limits on custom code or third-party modules.

Who runs upgrades, backups and patches after go-live

After go-live, the main difference between Odoo.sh and on-premise hosting is not the software. It is who holds each operating task. On Odoo.sh, the platform handles much of the server layer, including deployment, backup scheduling and restores within the platform's tooling, while your team or partner still owns the database content, custom modules, functional testing and the decision about when to move to a new version. On-premise, your organization owns every layer: the operating system, the Odoo service, PostgreSQL, the filestore, the reverse proxy, backup storage, monitoring and patching. Before you choose, ask the vendor to put in writing which of these tasks it performs, how often, and what it does not cover. Do not assume that a hosting label answers the question.

Security updates are the sharpest split. Odoo provides security patches only during standard support, which the Odoo standard and extended support documentation describes as three years after a major release. Extended support is paid and, according to the same documentation, is limited to Odoo.sh for select versions and to on-premise deployments. Once a version leaves standard support, a database still runs, but the organization is carrying the security risk unless it has a named owner and a funded plan to upgrade or to buy extended support where it is available. Check your version against the dates in the Odoo documentation, and record the end date in your asset register so it is visible to the CISO and the budget holder, not only to the engineers.

Third-party and custom modules are the usual cause of an upgrade running late. On either host, someone must own a review of every module that is not from the core Odoo distribution before a major upgrade starts. That review covers the module's maintainer, whether a version for the target release exists, which core views or methods it overrides, and whether it reads or writes personal data. On Odoo.sh the platform does not port your custom code for you, and on-premise the same work sits with your team. Ask your implementation partner whether module porting is inside the fixed scope of a support or upgrade engagement, and what happens to a module that has no target-version release.

Monitoring and backups need explicit owners as well. Decide who receives alerts for failed backups, disk growth, PostgreSQL errors, worker exhaustion and certificate expiry, and who responds out of hours. For backups, confirm the retention period, the storage location, the restore procedure and the time required to restore to a separate environment. Test a restore on a schedule rather than trusting the backup job log. Treat the restore test as the evidence. Document who may request a restore, who approves it, and whether a restore on Odoo.sh is handled by the platform or by your team.

Finally, write a short responsibility matrix and review it at each quarterly change window. List each task (patching the operating system, applying Odoo updates, upgrading the major version, backing up and restoring, monitoring PostgreSQL, tracking support end dates and reviewing modules) with a named role, an interval and the contractual source of the commitment. Where a commitment comes from a partner or the vendor, attach the written terms to the matrix. Ask for the vendor's written terms on response times and update cadence, because this page does not state service levels and any figure you hear without a contract behind it should be treated as an intention.

Access and secrets to decide for each hosting model

Each hosting model moves a different set of credentials and control points to your team. The cards below cover who can reach the host, where the subscription code and master password live, how test copies are cleaned, and how sign-in is wired up, so the decision is made before a build starts.

Host administrator access

On Odoo.sh, Odoo operates the platform and your team manages projects, branches and users through the Odoo.sh interface, so the question is which of your staff hold project roles and who can push code to production branches. On-premise, your team or your partner holds root or equivalent access to the operating system, PostgreSQL and the reverse proxy. Confirm who holds each level of access, how it is granted and removed, and whether that list is reviewed on a schedule.

Enterprise subscription code storage

An on-premise Enterprise database is activated by entering a subscription code, and Enterprise source is not publicly available, so the code is a licensing secret your team must keep. Decide where the code is recorded, which people can view it, and how it is retrieved when a server is rebuilt or a database is moved. On Odoo.sh and Odoo Online, the subscription is tied to the hosted service rather than a code you store, so confirm what your contract requires you to keep.

Master password and database manager

On self-hosted installs, the master password protects the database manager, which can create, duplicate, restore and delete databases. Odoo's documentation covers setting this password and restricting or disabling the database manager on production systems. Decide who knows the master password, where it is stored, how often it is changed, and whether the database manager is reachable from the internet at all. On Odoo.sh, you do not operate this control, so confirm with Odoo how database operations are authorized for your project.

Neutralized test copies

Test and staging databases are often duplicated from production, and a duplicate carries customer records, employee data and live integration credentials unless it is neutralized. Neutralization disables outgoing mail, scheduled actions and connections to external services so a copy cannot act on the business. Confirm which of these steps your process runs after each copy, who signs off on the result, and how test environments are kept off the same mail server and payment accounts as production.

LDAP sign-in setup

Odoo documents LDAP authentication, with an option to create a user on first login from a template user. On-premise, your team configures the LDAP connection and decides which directory groups map to which Odoo access rights. On Odoo.sh, the directory must be reachable from Odoo's hosting, which usually means a publicly reachable or tunneled endpoint, so confirm network paths with your directory team before choosing this model. Test the lockout behavior and the account-removal path, since a departed employee should lose access the same day.

Google, Azure OAuth and two-factor setup

Odoo documents Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication. Each provider needs its own application registration, redirect address and tenant or domain settings, and the redirect address differs between Odoo.sh and an on-premise domain. Decide which identity provider is the source of truth, whether two-factor is enforced by the identity provider or by Odoo, and who maintains the client secrets and their expiry dates. Confirm the exact steps against the current Odoo documentation for your version.

How to prove the host works before go-live

A host is proven only when a set of tests passes on it, using your modules, your sign-in setup and a copy of your data. Run these checks on the host you chose before cutover, and record each result with a named owner. Start with the edition and modules. On on-premise, confirm that the Enterprise subscription code activates the database and that every app in scope installs without errors. On Odoo.sh, confirm with Odoo that your plan is the Custom plan, because Odoo's pricing page lists Custom as the only plan that can be hosted on Odoo.sh or on-premise, and confirm that multi-company, Studio, external API access and custom modules are all active. A failure here usually appears as a missing app menu or a module that will not install because a dependency is absent. That tells you the licence or plan is wrong before any data moves.

Next, run the upgrade service against a copy of production and open the upgraded test database. On-premise, this requires an Enterprise subscription, and a Community install has no access to the service, so it fails this test by definition. Then check every custom module on the upgraded copy: install it, open its views, run its reports, trigger its scheduled actions and exercise its security rules with a test user from each access group. Failures look different by host. On-premise, the upgrade can stop with a server error or leave a module that fails to load, so keep the upgrade log and the module error output. On Odoo.sh, ask Odoo which logs and build output your plan exposes, and confirm how you will see them before the window opens. Both paths should end with a written list of modules that need porting work.

Test sign-in with each provider you plan to enable, using test accounts that match the access groups people will hold. Odoo documents LDAP with optional user creation on first login from a template, Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication. For each one, confirm the user lands in the right groups and that a user outside those groups is refused. Enable two-factor authentication on a test account and confirm the enrolment and recovery steps work. On on-premise, the common failures are a reverse proxy or certificate setting that breaks the OAuth callback, or an LDAP bind that is blocked by a firewall between the Odoo server and the directory. On Odoo.sh, confirm in writing whether the platform can reach your directory from its network path, since that depends on how your environment is connected and will not work by default.

Restore a backup to a separate server, not the production host, and time the restore so you know how long a recovery would take. Check that the database opens and that attachments in the filestore display correctly. Then create a neutralized test copy and inspect it. Confirm that it holds no live payment keys, API tokens, SMTP credentials or connection strings to production systems, that scheduled actions are disabled, and that outbound mail is blocked or redirected to an internal address. The failure you are guarding against is a test copy that sends real invoices or reminders to customers, or that writes to a live integration. Odoo documents database duplication with neutralization for on-premise, but your own mail server and integration settings still need explicit checks. On Odoo.sh, ask how copies are created, whether neutralization runs automatically, and whether it also covers your custom configuration parameters.

Confirm in writing the support end date for the version you will go live on, using Odoo's standard and extended support documentation. Standard support covers the first three years after a major release on Odoo Online, Odoo.sh and on-premise, including security updates. After that, paid extended support is limited to Odoo.sh for select versions and on-premise, and security patches are provided only during standard support. Odoo 19.0 was released in September 2025 with standard support planned until September 2028, and Odoo 17.0 standard support has already ended, so the window differs by version. On Odoo.sh, major upgrades are mandatory every two years, which means the upgrade budget recurs. A go-live on a version close to its end date, with no funded upgrade path, is a failure you can detect now. Ask the team to name the date, the owner of the next upgrade and the test database they will use.

What buyers ask before choosing Odoo.sh or on-premise hosting

Is Odoo.sh cheaper than hosting Odoo on our own servers?

Not necessarily, and no figure is available here to settle it. Odoo.sh and on-premise both require the Custom plan, so the subscription side is similar, and the difference lies in infrastructure, staffing and operations. Odoo.sh bundles hosting, staging and backups into the platform fee. On-premise moves those costs onto your cloud or data center bill and your team's time, and adds the work of patching the operating system, PostgreSQL and Odoo itself. Ask any quote to separate the hosting subscription, the Enterprise subscription if applicable, infrastructure you pay directly, and recurring support hours. Compare those lines over the same period, including the time your staff spend on upgrades and incidents.

Can our own IT team run Odoo on-premise without a partner?

Yes, if your team has the skills and capacity to own the work. Odoo documents packaged installers and source installation for on-premise use, and Enterprise databases are activated with a subscription code. Ongoing operation still means managing the application server, PostgreSQL, reverse proxy, TLS certificates, backups, test copies and upgrades. Odoo's upgrade service requires an Enterprise subscription on-premise, and Community edition has no access to it. Before deciding, check whether your team can test an upgraded database before it reaches production and can absorb the effort of porting custom modules at each major release.

Can we switch from Odoo.sh to on-premise hosting later?

Usually yes, but it is planned work, not a setting change. The database and custom modules have to move to a self-hosted environment, the Enterprise subscription must be activated there, and third-party and custom modules need to be checked against the target setup. Ask the implementer to confirm the migration steps, the downtime window and who tests the restored system. Keeping custom code small and documented lowers the cost of any later move, whichever host you choose now.

How long does it take to set up Odoo hosting?

The timing depends on the environment and scope, and no supplied figure gives a fixed duration. Odoo.sh setup is largely platform provisioning, so the schedule usually turns on your repository, module list and access approvals. On-premise setup adds infrastructure build, security configuration, backup design and a restore test, which take longer when cloud accounts, network rules or data center approvals are involved. Ask for a written plan with milestones, and confirm which steps depend on your IT team's access and change windows.

What do we need from our IT and business teams during hosting setup?

Your IT team provides cloud or data center access, network and DNS changes, identity integration decisions, certificate and backup storage arrangements, and a named owner for security sign-off. Your business team supplies the list of apps and users, process owners who can confirm test results, and time for user acceptance testing. Missing approvals and unclear owners are the most common causes of delay. Agree these responsibilities in the written scope before work starts so each side knows what it must deliver.

Is extended support available for Odoo.sh and on-premise, and what does it depend on?

Extended support is paid support after standard support ends, and it is limited to Odoo.sh for select versions and to on-premise. Standard support covers the first three years after a major release on Odoo Online, Odoo.sh and on-premise, including security updates and bug fixes. Security patches are only provided during standard support, so an old version outside it carries risk. Availability depends on the version, the hosting option and your subscription, so confirm the current eligibility with Odoo before you plan around it. Odoo SaaS versions cannot use extended support.

Do Odoo.sh and on-premise both require major upgrades every few years?

Major upgrades are required on different schedules depending on the host. Odoo's documentation says major version upgrades are mandatory every two years on Odoo Online and Odoo.sh. On-premise deployments are not covered by that statement here, so confirm the obligation for your version and plan. Either way, each upgrade should run first on an upgraded test database, and custom modules often need porting. Build the upgrade calendar into the hosting decision, including who performs the test and who approves the production move.

How DeployOpen scopes, builds and hands over the hosting decision

DeployOpen starts with the hosting decision itself, because it sets plan requirements, how much custom code you can keep and who carries each upgrade. We scope, build and document the chosen option inside your own infrastructure or on the Odoo.sh setup you select, and we hand over a plan you can run without us.

How we scope

  • Engagements are fixed-scope, with the hosting option, plan, versions and deliverables agreed in writing before work starts.
  • The written scope records which Odoo plan, edition and hosting model fit your custom modules, integrations and user count.
  • We confirm your Odoo version against the standard support dates in Odoo's published documentation before any build begins.

How we build

  • For on-premise, we prepare the server, database, filestore and backups, and activate Enterprise with your subscription code where it applies.
  • For Odoo.sh, we set up branches, staging and production environments and document how custom code is deployed to each.
  • We run a test database copy, with neutralization for non-production use, to rehearse upgrades and check custom modules before go-live.

How we hand over

  • You receive the written architecture, environment inventory, access model and a runbook for patching, backups and restores.
  • The handover includes a documented upgrade path showing when each major version must be ported and tested.
  • Your team walks through restore and upgrade rehearsals, and the record shows what was tested and what remains open.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer, scoped separately from the build.
  • A support plan can cover monitoring, patch application within standard support and planning the next major version upgrade.
  • Ask us to confirm which extended support options apply to your version and hosting model before you commit to a timeline.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.