Per worker + Enterprise license mandatory
Flat fee. Your cloud. No per-user pricing.
Switch from Odoo.sh — Save up to 70%
Same Odoo. Better hosting. Your choice of cloud. No vendor lock-in.
Start Free TrialNo credit card required · Free plan available
OEC.sh vs Odoo.sh: Your Control, Their Limits
Odoo.sh locks you into their infrastructure, their Git platform, and their mandatory Enterprise license. OEC.sh gives you the freedom to choose - and saves you 96% in the process.
Looking for an Odoo.sh Alternative?
Many businesses start with Odoo.sh, then outgrow it. The per-user fees scale fast. A 50-user deployment costs over $34,848/year including hosting and licensing. You're locked into GCP as your only cloud provider, and there's no way around the mandatory Enterprise license even if you only need Community features.
These are the most common reasons businesses switch to OEC.sh. If any of them sound familiar, you're not alone.
What you get by switching:
Odoo.sh Pricing Breakdown: How Per-User Costs Add Up
Odoo.sh charges per user per month for workers, plus a mandatory annual Enterprise license. Here's how costs compare at different team sizes.
How Odoo.sh Pricing Works
Same price for Shared & Dedicated
No free tier - all storage billed
Each staging environment
+ Mandatory Odoo Enterprise License: ~$49/user/month
| Team Size | Odoo.sh Annual Cost | OEC.sh + Cloud Annual | Your Savings |
|---|---|---|---|
5 Users 1 Shared | $4,140/yr Workers: $72/mo + License: $2,940/yr | $144/yr Free ($0/mo) + DigitalOcean ($12/mo) | $3,996/yr 97% less |
25 Users 3 Shared | $17,964/yr Workers: $216/mo + License: $14,700/yr | $756/yr Pro ($39/mo) + Hetzner ($24/mo) | $17,208/yr 96% less |
50 Users 5 Shared | $34,848/yr Workers: $360/mo + License: $29,400/yr | $1,044/yr Pro ($39/mo) + AWS ($48/mo) | $33,804/yr 97% less |
100 Users 10 Shared | $69,024/yr Workers: $720/mo + License: $58,800/yr | $3,540/yr Agency ($199/mo) + AWS ($96/mo) | $65,484/yr 95% less |
Odoo.sh costs based on worker pricing ($72/worker/mo) + Enterprise license (~$49/user/mo). OEC.sh costs include platform fee + estimated cloud provider cost. Enterprise license optional on OEC.sh.
Feature-by-Feature Comparison
Based on Odoo.sh's official FAQ and documentation
Your Code, Your Rules
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Git Platform | You choose: GitHub, GitLab, or Bitbucket | Locked to GitHub only |
| Self-Hosted Git | Full support for self-hosted GitLab | Not supported |
| Private Repos | Unlimited private repositories | Supported |
Your Infrastructure, Your Choice
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Cloud Providers | 8 named providers: DigitalOcean, AWS, GCP, Azure, Hetzner, Vultr, OVH, Linode | Odoo S.A.'s own infrastructure on Google Cloud — no choice |
| Server Location | Any region your chosen cloud publishes — you pick at signup | 7 fixed Google Cloud locations (Iowa, Toronto, Saint-Ghislain, Dammam, Mumbai, Singapore, Sydney) |
| Dedicated Resources | Your dedicated cloud droplet — your server, your performance | Shared by default; dedicated requires min 4 workers ($288.00/mo) on top of license |
Your Data, Your Country
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Available Regions | Any region your chosen cloud provider publishes (DigitalOcean, AWS, GCP, Azure, Hetzner, Vultr, OVH, Linode regions) | 7 fixed GCP locations only: Iowa, Toronto, Belgium, Saudi Arabia, Mumbai, Singapore, Sydney |
| Data Sovereignty | Pick a provider with a region in your jurisdiction (e.g., Hetzner in Germany, OVH in France, AWS in Japan / Korea / Brazil) | No datacenter in Switzerland, UAE, Germany, France, Japan, South Korea, or Brazil |
| Cloud Provider Choice | Choose the provider with local presence: AWS, Azure, Hetzner, OVH, Vultr, etc. | GCP only - no choice of provider |
| Local Compliance Regimes | Your cloud account sits in your jurisdiction — the compliance regime that applies is whichever one your provider/region honors | Limited to regions where GCP has datacenters |
Your Database, Your Way
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| PostgreSQL Extensions | Install any extension you need — root access on your server | "Not allowed" — per Odoo.sh FAQ |
| Direct DB Access | Full psql / pgAdmin access anytime | Shell access only, no direct database connection |
| PostgreSQL Performance Stack | PostgreSQL 17 + pgvector, PgBouncer connection pooling, PgTune optimization, read replicas (Pro) | Older PostgreSQL, no tuning controls, no read replicas |
Your Backups, Your Storage
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Backup Destinations | 9 destinations: AWS S3, Cloudflare R2, Backblaze B2, MinIO, Google Cloud Storage, Azure Blob, OVH Object Storage, DigitalOcean Spaces, FTP/SFTP | Odoo storage only — no external option |
| Backup Downloads | One-click download anytime; you keep the dump | "Discouraged" — auto-deleted if disk full, per Odoo.sh docs |
| Retention Control | You set the schedule on your cloud | Platform-managed, limited control |
Your Server, Your Packages
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| System Packages | Install anything via apt/pip | "Not supported" - limited to their whitelist |
| queue_job Module | Works perfectly - full background job support | "Incompatible" - causes "performance degradation" |
| Long-Running Processes | No time limits on your server | Processes killed after timeout |
| Outbound Email (Port 25) | Full SMTP control | Port 25 closed - must use external provider |
Your Domains, Your Control
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Custom Domains | Unlimited, your DNS | Supported |
| Naked Domains | A record supported | CNAME only - must redirect to www |
| SSL Certificates | Let's Encrypt auto-provisioned | Let's Encrypt auto-provisioned |
Your Platform, Your API
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Public REST API | Full v1 API for projects, environments, deploys, and webhooks. Available from the Starter tier. | "Not planned to be developed" — per Odoo.sh FAQ |
| Webhook Engine | Delivery log per webhook, automatic pause after 10 consecutive failures, native Slack/Teams/Discord payload formatters | Limited webhook surface, no delivery log |
| Automation Rule Triggers | 6 triggers: push, PR open, PR merge, PR close, tag push, manual | Manual dashboard only |
| Automation Rule Actions | 7 actions: deploy, quick update, ephemeral review env, clone-neutralize-deploy, promote staging→prod, destroy env, blue-green deploy | Manual dashboard only |
| Approval Gates | Rules can require explicit approval before executing (PENDING_APPROVAL state) | Not available |
| Monitoring Alert Types | 7 alert types (CPU/memory/disk high, container down, container restart, server unreachable, backup failed) + custom | Not separately published |
| Alert Dedup + Severity | 4 severity levels with fingerprint-based deduplication and configurable cooldown (default 1 hour) | Not separately published |
| Alert Delivery Channels | In-app, email, Slack / Teams / Discord webhook formatters | Email only |
| Scheduled Image Updates | Per-environment opt-in policy with cron schedule (default Sunday 3 AM), optional odoo-bin -u all module upgrade after image pull, rollback on failure, status tracking | Image updates handled by Odoo.sh; customer cannot configure schedule or rollback policy |
| Scheduled OS Updates | Toggle Ubuntu unattended-upgrades from the platform on your own cloud server | Customer does not touch the OS — managed entirely by Odoo.sh |
| Programmatic Control | Scriptable end-to-end via API + webhooks | Manual dashboard only |
| CI/CD Integration | Pipe in your own GitHub Actions / GitLab CI / Jenkins / etc. | Their predefined workflow only |
Your Ops, Zero Downtime
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Deploy Strategy | Blue-green deployment with Traefik routing — old container stays warm until the new one passes health checks | Standard restart with brief downtime |
| Staging Environment Persistence | Stays as long as you want. No expiration. No forced rebuilds. | Auto-deleted after 30 days. Branch must be rebuilt to use again. |
| Branch Database Lifecycle | You decide when to destroy. No platform-imposed expiry. | Databases for staging branches deleted after 1 month |
| Email Deliverability Testing | Mailtest captures every outbound email and scores SPF / DKIM / DMARC alignment plus SpamAssassin checks | No built-in deliverability testing |
| Customer Impersonation | Connect-As: sign in to a customer's Odoo environment as any user without their password, full audit trail | Not available |
| Cloudflare Tunnel | Connect servers via Cloudflare Tunnel — no inbound ports opened on your firewall | Not available |
| AI Coding (Dev Mode) | Claude Code, Gemini CLI, and Codex in a dedicated dev container | Not available |
| Resource Tuning | Resize the underlying cloud server when you want — your droplet, your call | Tied to the worker tier you're paying for |
Your License, Your Decision
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Enterprise License | Optional — use Community Edition, bring your own Enterprise license, or skip entirely | Mandatory — Odoo.sh bundles it and bills annually upfront |
| Community Edition | Full support, no penalties | Not available on Odoo.sh — Enterprise license required regardless of which apps you actually use |
| Older-Version Surcharges | We host whichever Odoo version you bring | Odoo S.A. levies a renewal-rate surcharge for hosting older Odoo versions (per their pricing terms) |
Your Budget, Your Savings
| Feature | OEC.sh | Odoo.sh |
|---|---|---|
| Payment Model | Monthly platform fee, cancel anytime; cloud bill goes to your provider | Annual Enterprise license paid upfront |
| Pricing Transparency | Simple: platform fee + your cloud bill, both shown before checkout | Multiple line items: per-user license + per-worker + storage + per staging env |
| Typical 10-User Cost | ~$288/year on Free + $24/mo cloud (Community Edition) | ~$7,974/year (license + 2 workers + 50 GB storage + 1 staging env, before tax) |
| Directory listing for practitioners | Public profile on the independent Odooers directory (Pro+, opt-in only); Featured placement + Agency-tier badge on Agency | Odoo.com/partners requires meeting Odoo SA's partner-program sales commitments |
True Cost Breakdown: 10 Users
Odoo.sh requires annual Enterprise license payment upfront
Odoo.sh (10 users)
OEC.sh + DigitalOcean
Migrate from Odoo.sh in Under 2 Hours
Simple 5-step migration process with free assistance
Export Backup
Download your database from Odoo.sh
Create Project
Set up a new project on OEC.sh
Import Database
Use our guided import wizard
Connect Git
Link your GitHub or GitLab repo
Update DNS
Point your domain to OEC.sh
Switch from Odoo.sh in Under 2 Hours
Export your database, import into OEC.sh, connect your Git repo, update DNS. We help you every step.
- Free migration assistance on all paid plans
- Keep your exact same Odoo database
- Connect GitHub, GitLab, or Bitbucket
- Zero downtime DNS cutover
Frequently Asked Questions
Common questions about switching from Odoo.sh
Why can't I choose my cloud provider with Odoo.sh?
Odoo.sh runs exclusively on Odoo S.A.'s own infrastructure (on Google Cloud, in 7 fixed locations). You can't deploy to AWS, Azure, Hetzner, DigitalOcean, or any other provider. That means no choice for cost optimization, data residency, or using a cloud account you already have. OEC.sh deploys to whichever cloud account you bring across 8 supported providers.
Does Odoo.sh really require annual upfront payment?
Yes. Odoo.sh requires a mandatory Odoo Enterprise subscription, which must be paid annually upfront. For 10 users, that's $5,880 before you even start - plus ongoing worker, storage, and staging fees. OEC.sh bills monthly with no upfront commitment.
Why can't I use GitLab with Odoo.sh?
According to Odoo.sh's official FAQ, GitLab integration is "low priority for development" - meaning they have no plans to support it. OEC.sh supports GitHub, GitLab (including self-hosted), and Bitbucket, giving you freedom to use your preferred Git platform.
What's wrong with queue_job on Odoo.sh?
Odoo.sh's FAQ explicitly states that the queue_job module is "incompatible" and causes "performance degradation". This popular module for background job processing works perfectly on OEC.sh because you have full control over your server configuration.
Does Odoo.sh really delete my staging databases after 30 days?
Yes. Per Odoo.sh's own documentation, databases created for staging branches are automatically deleted after one month. If you want to use that branch again, you have to rebuild it from scratch. This breaks long-running staging environments, QA branches that wait on customer feedback, and any workflow where staging lives longer than 30 days. On OEC.sh, staging environments persist as long as you want, no auto-deletion, no rebuilds, no surprises.
How much can switching to OEC.sh actually save?
It depends heavily on whether you keep Odoo Enterprise or switch to Community. The biggest line item on an Odoo.sh bill is the bundled Enterprise license at ~$49/user/month (annual billing) — for 10 users, that's ~$5,880/year by itself, on top of workers and storage. If you can run Odoo Community Edition on OEC.sh, you avoid the per-user license entirely and pay a flat platform fee plus your cloud bill. If you need Enterprise features, you keep paying Odoo S.A. for the license but skip Odoo.sh's hosting markup. Either way the savings are real; the size depends on team count and whether Community covers your needs.
Can Odoo.sh host my data in Switzerland, UAE, Germany, or Japan?
No. Odoo.sh only offers 7 fixed Google Cloud locations worldwide: Iowa (US), Toronto (Canada), Saint-Ghislain (Belgium), Dammam (Saudi Arabia), Mumbai (India), Singapore, and Sydney (Australia). There is no option to host in Switzerland, UAE, Germany, France, Japan, South Korea, Brazil, or most other countries. If your business has data sovereignty requirements, OEC.sh lets you pick any region your cloud provider publishes — Hetzner has Frankfurt and Helsinki, OVH has France, AWS has Tokyo / Seoul / São Paulo, and so on.
How long does migration from Odoo.sh take?
Most migrations wrap up in under 2 hours. Export your database from Odoo.sh, create a project on OEC.sh, import your database, connect your Git repository, and update DNS. We provide free migration assistance on all paid plans.
What is the best Odoo.sh alternative in 2026?
OEC.sh is a strong Odoo.sh alternative if you want infrastructure control: pick from 8 cloud providers (DigitalOcean, AWS, GCP, Azure, Hetzner, Vultr, OVH, Linode), run Odoo Community Edition without the mandatory Enterprise license, connect GitHub or GitLab or Bitbucket, and pay monthly. What you give up vs Odoo.sh: single-vendor billing (you pay your cloud provider directly) and the first-party relationship with Odoo S.A. — those are real trade-offs, not weaknesses.
How does Odoo.sh pricing work per user?
Odoo.sh charges $72 per worker per month (both Shared and Dedicated tiers), plus the bundled Odoo Enterprise license at ~$49/user/month (annual billing). Storage is $0.25/GB/month and staging environments are $18/month each. For a 25-user deployment with 2 workers and 50 GB, that totals roughly $17,010/year. OEC.sh charges a flat platform fee from $0/month (Free plan) with no per-user pricing; your cloud bill from the provider you pick is separate.
Can I use Odoo Community Edition on Odoo.sh?
No. Odoo.sh requires a mandatory Odoo Enterprise subscription - there is no option to run Community Edition. This means you must pay the per-user Enterprise license fee even if you only need Community features. OEC.sh fully supports both Community and Enterprise editions, so you only pay for what you actually need.
Is OEC.sh better than self-hosting Odoo?
OEC.sh sits between fully managed Odoo.sh and raw self-hosting. You get the control of self-hosting (choose your cloud, install any packages, full database access) with the convenience of a managed platform (automated deployments, backups, monitoring, and updates). No need to maintain servers manually or hire DevOps staff.
Continue Your Research
Odoo.sh vs Self-Hosted: Full Comparison
A detailed breakdown of Odoo.sh versus self-hosted Odoo deployments, covering cost, control, and operational trade-offs.
Managed vs Self-Hosted Odoo
Not sure whether to go managed or self-hosted? This guide walks through the key factors to help you decide.
Full Hosting Provider Comparison
Compare OEC.sh against Odoo.sh, Cloudpepper, Skysize, and other Odoo hosting providers side by side.
OEC.sh Plans & Pricing
Simple, transparent pricing starting at $19/month. No per-user fees, no annual lock-in, no mandatory Enterprise license.
Ready to Take Control?
Stop paying 96% more for less control. Switch to OEC.sh and own your infrastructure.
Odoo.sh claims on this page verified: Worker, storage, staging, and Enterprise license rates pull live from src/data/odoo-sh-pricing.json, which is re-scraped daily from odoo.com/pricing-configurator and odoo.sh/pricing. Restriction claims (Git platforms, region list, queue_job, PostgreSQL extensions, system packages, port 25, REST API roadmap, staging deletion) trace to Odoo.sh's own published documentation. OEC.sh feature claims (Mailtest, Connect-As, automation rules, webhook engine, blue-green deploys, PostgreSQL 17 + pgvector, public REST API, 9 backup destinations, AI coding dev mode, Cloudflare Tunnel) trace to the OEC.sh platform's shipping code under backend/services/ and the plan-enforcement feature registry. If anything still looks off, email hello@oec.sh.
Disclaimer
OEC.sh is an independent platform operated by OpenEduCat Inc. We are not affiliated with, endorsed by, or sponsored by Odoo S.A., Odoo.sh or their respective parent companies. All product names, logos, and brands mentioned are property of their respective owners and are used solely for identification and comparison purposes.
Pricing and feature information for third-party services is based on publicly available data and may not reflect current rates, promotional offers, or your specific configuration. Always verify pricing directly with the respective provider before making purchasing decisions.
For complete legal information, see our Legal Notices & Trademark Attributions.