Quick Comparison
Here is the full feature comparison between Odoo.sh and self-hosted Odoo. For a deeper look at OEC.sh as a managed self-hosting option, see our dedicated comparison page.
| Feature | Odoo.sh | Self-Hosted |
|---|---|---|
| Editions supported | Enterprise only | Community + Enterprise |
| Cloud provider | Odoo's infrastructure (GCP) | Any provider you choose |
| Root / SSH access | No root, limited SSH | Full root access |
| Git deployment | Built-in (excellent) | Set up deploy automation yourself |
| Staging environments | Automatic per branch | Manual setup or OEC.sh clone |
| Custom modules | Git submodules only | Install anything |
| OCA modules | Supported (Git submodules) | Full support |
| Backups | Daily, 7-day retention | Configure yourself |
| Monitoring | Basic dashboard | Full Prometheus/Grafana or OEC.sh |
| Multi-tenant | One database per project | Unlimited databases |
What Odoo.sh Offers
Odoo.sh is a Platform-as-a-Service built and operated by Odoo S.A., the company behind Odoo. It runs on Google Cloud Platform infrastructure and is tightly integrated with Odoo Enterprise.
The standout feature is Git-based deployment. Push code to a branch and Odoo.sh creates a staging environment automatically. Merge to production and it deploys. This workflow works really well for teams that develop custom Odoo modules.
The downsides: Odoo.sh only supports Enterprise Edition (you need an active subscription). You do not get root access to the underlying server. Your infrastructure runs on Google Cloud in Odoo's account, not yours. And the pricing adds up fast as you add users and workers.
Odoo.sh strengths
- - Automatic staging environments per Git branch
- - Zero-config deployment (push to deploy)
- - Built-in email gateway and CDN
- - Managed by the team that builds Odoo
What Self-Hosting Offers
Self-hosting means you run Odoo on a server you control - a VPS from Hetzner, a DigitalOcean droplet, an AWS EC2 instance, or a bare-metal server in your office. You install and configure everything: the OS, PostgreSQL, Odoo, Nginx, SSL, backups.
The main advantage is flexibility. You can run Community Edition for free (no license fees), choose any cloud provider in any region, install any module (including the full OCA catalog), and configure the server exactly how you want it. Root access means you control everything.
The cost is your time. Initial setup takes 2-8 hours depending on experience. Ongoing maintenance (security patches, SSL renewals, backup monitoring, PostgreSQL tuning) runs 5-10 hours per month. For a step-by-step walkthrough, see our self-hosted Odoo deployment guide.
Odoo.sh Pricing Breakdown - What You Actually Pay
Odoo.sh pricing has four cost components. Every one is mandatory - there are no free tiers and no bundled storage. Here is what you actually pay:
| Cost Component | Amount | Notes |
|---|---|---|
| Odoo.sh worker | $72/worker/month | Minimum 1 worker. Add more as users grow. |
| Odoo Enterprise license | $49/user/month | Required - Odoo.sh does not support Community Edition |
| Staging environment | $18/month each | Per staging branch. No free staging included. |
| Storage | $0.25/GB/month | All storage is billed. No free quota. |
All prices are Odoo.sh yearly billing rates. Monthly billing is 20% more ($90/worker). Source: odoo.sh/pricing.
Total Monthly Cost by Team Size
Here is the full cost for Odoo.sh (Enterprise) vs self-hosting (Community) at different team sizes. The Enterprise license is the same cost regardless of hosting - your savings come from infrastructure.
| Team Size | Odoo.sh Total | Self-Hosted (Community) | OEC.sh (Community) | Annual Difference |
|---|---|---|---|---|
| 5 users1w / 25GB / 1 staging | $341.25/mohosting $96.25 + license $245 | $7/moVPS only, no license | $7/moVPS + free tier | $4,011/yr |
| 10 users2w / 50GB / 1 staging | $664.5/mohosting $174.5 + license $490 | $12/moVPS only, no license | $12/moVPS + free tier | $7,830/yr |
| 25 users3w / 75GB / 2 staging | $1,495.75/mohosting $270.75 + license $1,225 | $24/moVPS only, no license | $24/moVPS + free tier | $17,661/yr |
| 50 users4w / 150GB / 2 staging | $2,811.5/mohosting $361.5 + license $2,450 | $48/moVPS only, no license | $48/moVPS + free tier | $33,162/yr |
Odoo.sh costs include workers, storage, staging, and Enterprise license (US pricing, $49/user/mo). Self-hosted and OEC.sh columns show Community Edition (no license fees). If you need Enterprise features on self-hosted, add $49/user/month to both columns. VPS costs based on Hetzner/DigitalOcean.
Key takeaway: A 10-user team pays $664.5/month on Odoo.sh (Enterprise). The same team on Community Edition self-hosted via OEC.sh pays just $12/month - the Enterprise license is 74% of the Odoo.sh bill.
The bottom line: Odoo.sh bundles infrastructure and platform fees into a per-user cost model that scales linearly. Self-hosting separates these. Your VPS cost stays relatively fixed while only the license scales with users. For Community Edition users, Odoo.sh is not an option at all.
For a full interactive comparison with your own team size, use our Odoo pricing calculator or see real Odoo pricing across 179 countries.
Odoo 20 and the Agreement v13 Context
Odoo 20 shipped on September 24, 2026 as the current major release. Odoo 19 remains the previous major release, and Odoo 18 is still the LTS line through October 2027. The Enterprise Subscription Agreement v13 took effect on the same date and changes how seats are counted. v20 introduces a Light User seat for limited-permission roles like viewers, approvers, and kiosk staff, priced below a full user. Light User rates land around $8.90/month in the US (and roughly €7.90, £7, A$12.90, ₹195 in other confirmed regions), billed under Agreement v13.
Light User is an Odoo.com construct, not a self-hosting construct. If you self-host v20, your server still just runs Odoo. The seat distinction lives on the Enterprise Subscription invoice from Odoo.com. You run the stack on your infrastructure; Odoo.com invoices your full users and Light Users under Agreement v13. On Odoo.sh, the Light User seat is a separate line item, and we are still confirming whether Odoo.sh bundles any Light Users into the hosting plan or bills them all separately. For a full breakdown, see our Odoo 20 Light User explainer. v20 also adds native agentic AI and MCP tooling that both self-hosted and Odoo.sh deployments inherit.
Git Workflow and Deployment Automation
This is where Odoo.sh really stands out. Their Git workflow is built specifically for Odoo development:
- - Push to a branch and get an automatic staging environment with your code changes
- - Each branch gets its own database, copied from production with outgoing email and crons switched off
- - Merge to the production branch and it deploys automatically
- - Built-in log viewer, shell access, and database manager per branch
Self-hosted, you build this yourself. GitHub Actions or GitLab CI can deploy on push, but you need to configure the pipeline, manage staging servers, and handle database cloning. It is doable (see our GitLab deploy automation guide and Bitbucket deploy automation guide), but it takes 4-8 hours to set up properly.
OEC.sh supports Git-based deployment with auto-deploy on push to GitHub or GitLab. Staging environments can be created by cloning production with one click.
Staging Environments
You need to test changes before they hit production on any business-critical ERP. How easy that is depends on your setup:
Odoo.sh
Create a staging branch in Git, push it, and Odoo.sh automatically provisions a staging environment with a copy of your production database (outgoing email and crons switched off). One of the best features.
Self-Hosted
Spin up a separate server or Docker container, dump your production database, sanitize sensitive data, deploy your branch. Takes 30-60 minutes manually. OEC.sh's clone-to-staging feature copies production in one click with outgoing email and crons switched off. See our staging guide.
Custom Modules and OCA
Odoo.sh handles custom modules through Git submodules. You add your custom module repositories as submodules in your project's Git repo, and Odoo.sh installs them on deploy. This works well for most cases but can get complicated with many module dependencies.
Self-hosted Odoo has no restrictions. Put modules in the addons path and they work. The entire OCA module catalog (1000+ community modules) installs without friction. Third-party modules from the Odoo App Store work too.
When Odoo.sh Makes Sense
- - You already pay for Odoo Enterprise and the licensing cost is not a concern
- - Your team does active Odoo module development and values the Git workflow
- - You have fewer than 20 users (the cost gap with self-hosting is smaller)
- - You have zero DevOps expertise and no budget to hire it
- - You want official Odoo support for both the platform and the application
When Self-Hosting Makes Sense
- - You use Odoo Community Edition (Odoo.sh does not support it)
- - You need a specific cloud provider or data center region for compliance
- - You have 25+ users and want to reduce infrastructure costs
- - You need full root access for custom server configurations
- - You run multiple Odoo instances for different companies or clients
- - You want to avoid vendor lock-in to a single hosting platform
Third Option: Managed Multi-Cloud with OEC.sh
OEC.sh sits between Odoo.sh and manual self-hosting. You connect your own cloud account (Hetzner, AWS, DigitalOcean, GCP, Azure, Vultr, OVH, or Linode) and OEC.sh handles deployment, SSL, backups, monitoring, and updates on your infrastructure.
8+
Cloud providers
$0
Free tier available
Both
Community + Enterprise
See pricing plans or all platform features for details. For a direct OEC.sh vs Odoo.sh comparison, see our dedicated comparison page.