Odoo Hosting Options Compared
Odoo gives you a choice of three hosting models — Odoo Online, Odoo.sh, and on-premise — and the right answer depends less on price than on how much custom code you intend to run, how tightly you…
- Who runs the servers — Odoo Online (SaaS): Odoo S.A.
- Custom & third-party modules — Odoo Online (SaaS): Not allowed · Odoo.sh (managed cloud): Allowed · On-premise (self-hos…
- Odoo Online is the fully managed, browser-first deployment.
- Odoo.sh is Odoo S.A.'s official cloud platform — a managed PaaS/IaaS layer that gives you nearly all the customization freedom of on-premise…
Odoo gives you a choice of three hosting models — Odoo Online, Odoo.sh, and on-premise — and the right answer depends less on price than on how much custom code you intend to run, how tightly you must control where your data lives, and how much operational responsibility your team is willing to absorb. For most small and mid-market buyers the shortest path to value is Odoo Online (managed SaaS, no custom modules), upgrading to Odoo.sh the moment you need third-party apps, custom code, or a proper staging pipeline, and reserving on-premise for regulated, air-gapped, or hyperscale workloads where data residency and unlimited source-level control are non-negotiable. This is the buyer's comparison — how the three stack up on cost, control, and upgrades — rather than a deep dive into any single platform.
If you already know you are heading toward Odoo.sh and want the platform explained end-to-end, our dedicated Odoo.sh hosting guide covers the branch model, staging workflow, and operational details. Here the goal is different: help you pick the right lane in the first place, before you have committed data and customizations to a model that is expensive to migrate away from.
The three hosting models at a glance
Odoo is the same application in all three cases — only the infrastructure, the upgrade cadence, and the customization surface differ. Odoo itself states this plainly: "Odoo Online or Odoo Enterprise (On-premise or Odoo.sh) is the same software. Only the hosting and infrastructure are different: emails, backups, database redundancies, etc." (Odoo pricing FAQ).
- Who runs the servers — Odoo Online (SaaS): Odoo S.A. · Odoo.sh (managed cloud): Odoo S.A. · On-premise (self-hosted): Your team / partner
- Custom & third-party modules — Odoo Online (SaaS): Not allowed · Odoo.sh (managed cloud): Allowed · On-premise (self-hosted): Allowed
- Customization surface — Odoo Online (SaaS): Odoo Studio only · Odoo.sh (managed cloud): Studio + custom code + Git CI/CD · On-premise (self-hosted): Full source-code access
- Staging / dev environments — Odoo Online (SaaS): No · Odoo.sh (managed cloud): Yes, included · On-premise (self-hosted): You build them
- Upgrades — Odoo Online (SaaS): Automatic, by Odoo · Odoo.sh (managed cloud): Current version, you control timing · On-premise (self-hosted): Manual, your responsibility
- Backups & monitoring — Odoo Online (SaaS): Included · Odoo.sh (managed cloud): Included (3 locations) · On-premise (self-hosted): You run them
- Setup time — Odoo Online (SaaS): Same day · Odoo.sh (managed cloud): A few days · On-premise (self-hosted): Weeks to months
- Offline operation — Odoo Online (SaaS): No · Odoo.sh (managed cloud): No · On-premise (self-hosted): Yes
- Plan required — Odoo Online (SaaS): One App Free, Standard, or Custom · Odoo.sh (managed cloud): Custom · On-premise (self-hosted): Custom
- Indicative cost driver — Odoo Online (SaaS): Per-user subscription · Odoo.sh (managed cloud): Per-user license + per-instance Odoo.sh usage · On-premise (self-hosted): License + hardware + IT staff
The decision is genuinely three-way. The Odoo community forum's canonical answer on hosting type summarizes the split cleanly: Online is the locked-down managed option (official apps only), Odoo.sh is the managed cloud that supports all modules plus custom code, and on-premise offers the greatest control but demands the most technical skill, with the organization responsible for its own maintenance, backups, and upgrades.
Odoo Online: managed SaaS, the path of least resistance
Odoo Online is the fully managed, browser-first deployment. Odoo S.A. hosts the database, handles security patching, runs daily incremental backups on two continents, monitors the environment 24/7, and applies version upgrades for you — all bundled into the per-user subscription (Odoo pricing FAQ). You never touch a server, a PostgreSQL config file, or a reverse proxy.
What you actually get
The subscription is the same software, configured for zero-ops use. Storage on Odoo Online is unmetered up to 100 GB under Odoo's acceptable-use policy (Odoo pricing FAQ), and email gateways, DNS, and TLS are handled automatically. The published per-user pricing (annual billing) is roughly $24.90/user/month on the Standard plan, which includes all Odoo apps, and $37.40/user/month on the Custom plan, which additionally unlocks Odoo Studio, Multi-Company, and the External API (Odoo pricing). There is also a genuinely free One App Free tier — one Odoo application, unlimited users, forever — but only on Odoo Online.
The hard ceiling: no custom modules
This is the single most important constraint, and the one buyers most often discover too late. Odoo Online does not allow custom or third-party modules. You can only install apps that Odoo publishes to its online platform. Customization is limited to Odoo Studio (the no-code field/screen designer) and configuration — and even Studio requires the Custom plan. As the forum's accepted answer puts it, in Odoo Online "it is not possible to add custom/third-party applications… and does not support customizations" beyond Studio (Odoo forum).
The practical implication: if your roadmap depends on an app from the Odoo Apps store that isn't published by Odoo, or any community/OCA module, or any code your team writes, Odoo Online is a dead end. You will need Odoo.sh or on-premise. Odoo confirms the boundary: "writing your own modules is only available with Odoo.sh and Odoo On Premise" (Odoo forum). The reverse is also worth knowing — payment providers, shipping carriers, VoIP, and bank-synchronization services that Odoo itself calls out are part of the Standard plan and are not counted as "External API" usage, so most everyday integrations work fine on Online.
Pricing reality
The headline subscription cost scales linearly with named backend users — and Odoo's definition of a paying user matters for budgeting. Paying users are employees who access the Odoo backend to create, view, or edit documents. Customers and suppliers using the portal, and website visitors placing orders, are free (Odoo pricing FAQ). That keeps the bill tied to internal headcount rather than total audience, which is favorable for commerce-heavy deployments.
Odoo.sh: the developer-grade managed cloud
Odoo.sh is Odoo S.A.'s official cloud platform — a managed PaaS/IaaS layer that gives you nearly all the customization freedom of on-premise without any of the server management. It exists for one audience: developers, implementation partners, and technical teams who need to write or install custom code and want proper environments to test it in (Odoo.sh).
Why Odoo.sh exists: Git, staging, and continuous integration
The platform's defining feature is its Git-based workflow. You push code to branches; Odoo.sh automatically spins up development, staging, and production environments, runs automated tests on every commit, and lets you promote a branch to production with a merge (Odoo.sh). Included in every plan are continuous integration and deployment, GitHub integration, shell and SSH access, an online editor, 24/7 monitoring, automatic DNS and email setup, live storage replication, and daily incremental backups replicated across three servers in different locations (Odoo.sh pricing). You also get unlimited developer accounts and unlimited development branches.
This is the operational layer most teams would otherwise have to build themselves on on-premise — staging databases, CI pipelines, backup rotation, rollback — handed to you as a product. For any organization doing real custom development, that bundle is usually worth more than the raw compute.
What Odoo.sh costs: the configurator model
Unlike Odoo Online's flat per-user price, Odoo.sh is metered by usage. The Odoo.sh pricing configurator bills four dimensions: workers (compute, billed per worker per month up to 8 before you must move to dedicated hosting), storage (billed per GB per month, up to 512 GB before dedicated is required), hosting type (shared or dedicated), and staging environments (billed per environment per month, up to 20). Three critical details follow from this:
- The Odoo.sh hosting fee does not include the Odoo Enterprise license. You pay the Custom-plan per-user subscription and the Odoo.sh usage on top of it (Odoo pricing FAQ).
- The usage model rewards right-sizing. A small dev team can run lean on shared hosting with one staging environment; a busy production workload with many collaborators will push you toward dedicated hosting and more workers.
- You can dial it up and down. Because it is metered, Odoo.sh behaves more like cloud infrastructure than a fixed SaaS seat — useful for projects with bursty compute needs or seasonal traffic.
Odoo.sh runs on Google Cloud infrastructure, which carries ISO 27001 and SOC 2 certifications at the foundation layer — relevant if your security team asks where the data physically resides (Ksolves comparison). The data still lives on Odoo S.A.'s infrastructure rather than your own, so organizations with strict data-residency rules should validate the region and residency posture before committing.
When Odoo.sh pays off
Odoo.sh is the right call the moment any of these becomes true: you need to install a third-party or community module, you are writing custom Python, you want a staging environment that mirrors production with real (neutralized) data, or you want automated testing and rollback on every release. It is also the cleanest home for any custom code you commission from a partner, because the Git workflow makes handoffs and reviews trivial.
On-premise: maximum control, maximum responsibility
On-premise (also called self-hosted) means you download Odoo Enterprise and run it on infrastructure you control — physical servers in your own facility, virtual machines in a private data center, or your own cloud account. You own every layer: operating system, PostgreSQL database, application server, reverse proxy, TLS certificates, email gateway, backups, monitoring, and the upgrade schedule (Odoo on-premise documentation).
What on-premise actually requires
The on-premise administration guide is revealing because of what it has to explain. To run Odoo properly yourself you must: provision PostgreSQL and configure it for Odoo; calculate and tune the correct number of Odoo workers and memory sizing for your hardware; configure SSL between Odoo and PostgreSQL and terminate HTTPS with hardening at the edge; set up cron workers, LiveChat long-polling, and static-file and attachment serving; lock down the database manager and block brute-force attacks; configure an email gateway (Postfix or Exim); and optionally add GeoIP. Every one of those is a task Odoo Online and Odoo.sh do for you.
You also own upgrades. On-premise customers must run the latest stable version of Odoo, and applying a bugfix or version update means downloading the new code, backing up the database, installing the updated version, and running the migration yourself — via packaged installer, tarball, Git, or Docker (Odoo on-premise update docs). Odoo's own advice is that the best time to switch into or re-host on-premise is immediately after a new stable version ships, so you start current.
The hidden costs of self-hosting
The license is the cheap part. The real cost is the people and the toil around it. A credible on-premise deployment needs skilled in-house or contracted IT professionals covering Linux administration, PostgreSQL tuning, application-level Odoo expertise, security patching, and an on-call rotation for the database that runs your business. Backup and disaster recovery planning falls entirely to your team, and a poorly run on-premise environment can end up less secure and less available than a well-run SaaS deployment — the control cuts both ways (Ksolves comparison). Scaling is manual: adding capacity means procuring and configuring resources, which is slow compared to the instant, dashboard-driven scaling of Online or Odoo.sh.
The flip side is long-run economics. Once the infrastructure is established, recurring costs stay low, and for large, stable deployments with an existing IT team the total cost over five to ten years can come in well below equivalent SaaS subscriptions at scale (Ksolves comparison).
When on-premise is the right call
On-premise earns its complexity in three situations. First, regulated industries with strict data residency — healthcare, finance, defense — where data must never leave your own infrastructure and you need to prove it. Second, air-gapped or low-connectivity environments that must operate without an internet connection; on-premise is the only Odoo option that works fully offline. Third, very large, predictable workloads where you already employ the IT staff and the amortized cost of owning the iron beats per-user SaaS pricing. Outside those cases, the operational tax of on-premise is hard to justify.
Cost, control, and upgrades: the three decision axes
Most hosting conversations collapse into three questions. Address them explicitly and the choice becomes obvious.
Axis one — cost over time
Cost behaves differently in each model, and the crossover points matter more than the sticker price. SaaS (Odoo Online) has zero upfront cost and a predictable per-user bill that grows linearly with headcount — excellent for small and growing teams, but the cumulative subscription over five to ten years can exceed what an on-premise setup would have cost a large organization (Ksolves comparison). On-premise inverts that: significant upfront investment in hardware and setup labor, then low recurring costs once established. Odoo.sh sits between — more than a basic SaaS plan, but materially less than building on-premise infrastructure, with built-in staging and CI tooling that you would otherwise have to engineer separately (Ksolves comparison).
A useful framing for budgeting: on Odoo Online you pay for users; on Odoo.sh you pay for users plus usage; on on-premise you pay for users plus infrastructure plus people. Model all three legs before committing.
Axis two — control and customization
This is the axis that actually drives most migrations, and it is a hard spectrum:
- Odoo Online: configuration and Odoo Studio only. No custom or third-party modules, ever.
- Odoo.sh: full custom code, third-party modules, Git-based CI/CD, staging environments, SSH access — managed for you.
- On-premise: unlimited source-level access, the ability to modify core behavior, and the only option that runs offline (Odoo forum).
The customization gate is binary in a way buyers often miss: Odoo Studio is available on every subscription (including Online on the Custom plan), but writing your own modules is only available on Odoo.sh and on-premise (Odoo forum). If the answer to "will we ever write or install custom code?" is yes, Online is off the table from day one.
Axis three — upgrades and version currency
Upgrades are where the three models diverge most sharply, and the difference has real operational consequences.
- Odoo Online runs the latest version of Odoo with regular upgrades applied automatically by Odoo — you have no version to manage, but also no control over timing (Odoo pricing FAQ).
- Odoo.sh keeps you on the current version, but you control when to migrate branches and promote, because the Git workflow lets you test an upgrade in staging before it touches production.
- On-premise puts the entire upgrade on you: download, back up, install, migrate. Odoo requires on-premise users to run the latest stable version, and falling behind creates real risk because old versions eventually lose support (Odoo on-premise documentation).
For teams that treat "always current, never a project" as a feature, Online wins outright. For teams that need to test customizations against a new version before going live, Odoo.sh is the sweet spot. For teams with the discipline to run their own release cycle, on-premise works — but it is a standing commitment, not a one-time setup.
A decision framework: which hosting for which company
Strip away the marketing and the choice maps cleanly onto company shape.
Choose Odoo Online if…
You are a small or mid-sized business or startup with no dedicated IT staff, you want to launch in hours rather than weeks, and you are confident your needs can be met by Odoo's official apps plus Studio configuration. It is the lowest-friction, lowest-surprise option, and the free One App Free tier makes it genuinely viable for a pre-revenue company to start on. The moment a third-party module or custom code enters your roadmap, plan to move.
Choose Odoo.sh if…
You are a developer, an Odoo implementation partner, or a mid-market business building a custom Odoo solution and you want managed cloud hosting with a real development workflow. Odoo.sh is the default the instant customization, third-party modules, or staging environments appear in your requirements — and for most growing companies that is sooner than they expect. If you want help scoping and building that solution, our Odoo implementation services are designed for exactly this stage.
Choose on-premise if…
You are an enterprise, a regulated entity, or an organization with an in-house IT team that needs total data ownership, unlimited source-level customization, or offline operation — and you are ready to own maintenance, patching, backups, and upgrades indefinitely. The total cost of ownership only beats the alternatives at scale, so model it honestly against Odoo.sh before committing.
Migrating between hosting models
One of the underappreciated strengths of Odoo is that the hosting decision is not irreversible in the way that, say, switching ERP vendors is. Because it is the same software in all three models, you can move between them — and you always own your data. On Odoo Online you can download a full database backup through the control center at any time; Odoo's position is explicit: "you own your data" (Odoo pricing FAQ).
The practical nuance is timing and direction. Moving from Odoo Online to on-premise is cleanest immediately after a new stable version ships, because you start on a current codebase and avoid an immediate upgrade project (Odoo pricing FAQ). Moving from Online to Odoo.sh is the more common trajectory and is well-trodden territory, since both are managed by Odoo S.A. The reverse — squeezing a customized on-premise or Odoo.sh database back onto Odoo Online — is generally not possible if you have custom modules, because Online simply will not run them.
The takeaway: start on the model that matches your near-term needs, keep customizations portable, and treat the hosting model as a decision you can revisit as your organization matures — not a permanent lock-in.
Common pitfalls buyers make
A few mistakes recur often enough to be worth naming directly.
Buying Online then discovering you need custom code. This is the most expensive misjudgment because it is discovered after data and configuration are invested. Ask the customization question before you buy, not after.
Forgetting that Odoo.sh fees sit on top of the license. Teams budget the Custom-plan per-user subscription and are surprised by the additional Odoo.sh usage charges for workers, storage, and staging. The Odoo.sh hosting cost is explicitly not included in the subscription (Odoo pricing FAQ).
Choosing on-premise to "save money" without costing the people. Self-hosting looks cheap next to per-user SaaS pricing on a spreadsheet, but the fully loaded cost of the IT staff, on-call rotation, and security work usually changes the math. On-premise's long-run cost advantage only materializes at scale with an existing team.
Underestimating upgrade labor on on-premise. Staying current is a recurring project, not a one-time setup. Organizations that defer upgrades accumulate risk and eventually face a forced, disruptive jump.
Ignoring data residency early. If you operate in a regulated industry, validate where each model physically stores data before committing. Online and Odoo.sh both host on Odoo S.A. infrastructure; only on-premise guarantees data stays within your boundary (Ksolves comparison).
The bottom line
Odoo's three hosting models are best understood as a ladder of control and responsibility, not three competing products. Odoo Online is the zero-ops managed option — fast to start, automatically upgraded, and ideal for teams whose needs fit Odoo's official apps. Odoo.sh is the same managed infrastructure plus a developer workflow — Git, staging, CI/CD, and full custom-code support — and it is the right home for any real customization. On-premise is the maximum-control option that trades convenience for total ownership, and it earns its keep only at scale, under regulation, or offline.
The decision that matters most is not which is "best" in the abstract — none is — but which matches your customization intent, your data-residency constraints, and the operational capacity of your team. Get that match right and Odoo becomes a system you can start on today and still be running, on the same database, as you grow — moving between hosting models as your needs evolve rather than ripping the system out. And whichever lane you choose, having a partner for configuration and ongoing Odoo support is usually the difference between a deployment that compounds in value and one that quietly stalls.