Odoo.sh or Frappe Cloud: which managed ERP host fits your team
If you want an ERP without running servers, the choice starts with the platform, and the custom code you need decides most of the rest. Odoo.sh is the right host when you need custom Odoo modules, because Odoo's pricing page limits Odoo.sh hosting to the Custom plan, and only Custom includes custom modules, multi-company, Odoo Studio and external API access. Odoo.sh also gives you Odoo-managed branches and backups for your own code. Confirm the current per-user Custom pricing with Odoo before you budget, since Odoo does not publish a single fixed figure for it in the facts we rely on here, and expect a per-user subscription on top of the hosting decision.
Frappe Cloud fits when you have chosen ERPNext and want published prices. Frappe publishes its plans: shared site hosting starts at 5 US dollars per month, shared servers start at 20 US dollars per month and dedicated servers at 125 US dollars per month, according to the ERPNext pricing page. Frappe Cloud handles installation, upgrades, monitoring and support, and ERPNext's license is free to self-host, so Docker on your own servers is the fallback if the hosted model stops fitting. Be aware that Frappe Cloud's shared public benches do not allow Server Scripts, so confirm that your customizations can run on a dedicated or otherwise permitted setup before you commit.
Be fair to both: Odoo.sh gives you a mature path to custom Odoo code under Odoo's support policy, while Frappe Cloud gives you lower entry prices and a simpler hosted model for ERPNext's standard apps. Because the platform decision is harder to reverse than the hosting one, settle on Odoo or ERPNext first, then compare hosts on the scope you have written down. Ask each vendor in writing which support and upgrade windows apply to your version, and what happens to custom code during a forced upgrade.
How Odoo.sh and Frappe Cloud differ on plans, versions and support
This table compares what you must buy to use each vendor's managed host, how published prices and per-user plans differ, and how long each version stays supported. Read the Odoo rows as a quote exercise, since Odoo's per-user price is not in the supplied facts, and the Frappe rows as a published-price comparison with lifecycle dates attached.
| Factor | Odoo.sh | Frappe Cloud |
|---|---|---|
| Entry requirement | Only the Custom plan can be hosted on Odoo.sh, so Standard and One App Free do not cover it | Shared site hosting is listed on the ERPNext pricing page, with no per-user plan required to start |
| Published price | Per-user monthly prices and a yearly discount are on the pricing page, but the per-user figure for Custom is not in the supplied facts; get it from a Custom plan quote | Shared sites start at 5 US dollars per month; shared servers at 20 US dollars and dedicated servers at 125 US dollars per month (ERPNext pricing page) |
| Standard support window | Three years after a major release, covering security updates and bug fixes; Odoo 19 (September 2025) runs until September 2028 | Version 15 is planned for support to the end of 2027 and version 16 to the end of 2029 (Frappe supported versions page) |
| Extended support after standard | Paid extended support is available for select Odoo.sh versions only; confirm which versions qualify before you commit | Not described in the supplied facts; confirm post-lifecycle options with Frappe |
| Release rhythm | SaaS versions ship every two to three months and cannot use extended support | Minor releases arrive frequently on both supported lines, such as v16.51.1 on October 15, 2026 (ERPNext releases) |
| Major upgrades | Mandatory every two years on Odoo.sh; the upgrade service tests on an upgraded database before production | Upgrade path and timing are not covered in the supplied facts; confirm with Frappe before planning |
| Custom code | Custom modules are a Custom plan feature and run on Odoo-managed branches | Server Scripts are disabled by default from version 15 and public shared benches do not allow them; confirm which bench type you need |
| Warranty and vendor cover | Covered by the plan and standard support terms; confirm exact cover in the contract | Warranty applies only if you run a listed version and hold a matching Frappe Cloud support plan (Frappe supported versions policy) |
Where your data sits and what each host lets you control
Odoo.sh and Frappe Cloud both take server operations off your team, but they differ in who controls the servers, how tenants are isolated and who owns backups. Use these cards to write the questions you must put to each vendor before you sign.
Data location and hosting region
The supplied facts do not state which regions Odoo.sh or Frappe Cloud run in, so do not assume a region. Ask each vendor in writing where primary data, backups and support access reside, and whether the region can be chosen at contract time. For a regulated workload, record the answer in the data processing terms and check it against your own residency obligations.
Access to the underlying servers
Ask whether your team gets shell or database access, and whether the vendor's operations staff can reach your environment for maintenance. Odoo.sh is tied to Odoo-managed branches, while Frappe Cloud manages installation, upgrades and monitoring for you. Confirm what you can change yourself, such as custom code or configuration, and what requires a vendor request.
Shared versus dedicated isolation
Isolation depends on the hosting tier you buy. Frappe Cloud shared benches do not allow server scripts, which limits custom Python logic on that tier. Dedicated servers change the tenancy model, so ask each vendor how tenants are separated, how resource limits are enforced and whether a noisy neighbor can affect your database performance.
Backups and restore ownership
Ask who takes backups, how often, where copies are stored, how long they are kept and who approves a restore. Test a restore into a separate environment before you rely on it. Also ask whether you can download a full database copy yourself, since that determines how easily you could leave the platform later.
Compliance readiness support
Each host can supply configuration details, logs and change records that feed an assessment, but neither makes you compliant. DeployOpen prepares controls and evidence for compliance assessments but does not issue audit reports or certifications, and independent auditors and certification bodies perform that work. Ask each vendor which evidence it provides on request and which controls remain your responsibility.
Version and support obligations
Hosting does not remove your obligation to run a supported version. Frappe requires customers to be on a listed version and subscribed to a matching Frappe Cloud support plan to receive warranty coverage. Odoo standard support covers security updates for a fixed window, and security patches stop after that window. Map each vendor's end-of-support dates to your own change calendar.
What Odoo.sh and Frappe Cloud charge for and what recurs
Odoo.sh is reached only through the Custom plan, the one Odoo plan that can be hosted on Odoo.sh or on-premise. Odoo prices its plans per user per month with a yearly discount, and Enterprise licensing follows the same headcount logic: the Odoo Enterprise Edition License v1.0 requires a valid subscription matching the user count. Fix your user count, the apps you need and whether you require multi-company before you request a quote, because these are the inputs that move the recurring total most. The rates themselves are on the Odoo pricing page, and you should confirm the current figures against your own user numbers. Ask the vendor to separate the subscription lines from any hosting, support or upgrade charges so you can see what continues after go-live.
Frappe Cloud publishes its hosting fees. According to the ERPNext pricing page, shared site hosting starts at 5 US dollars per month, shared servers start at 20 US dollars per month and dedicated servers start at 125 US dollars per month. Self-hosting ERPNext is free, so these fees pay for the managed service: installation, upgrades, monitoring and support. Support has its own condition. Frappe's supported versions policy says you must run a listed version and hold a matching Frappe Cloud support plan to receive warranty coverage from Frappe. The published site and server fees do not show the support plan price, so ask Frappe for that figure and confirm which plan matches your version. Recurring costs therefore include the site or server fee plus any support plan, and the choice between shared and dedicated capacity changes the monthly base.
One-time work is where the two platforms differ most in practice. Scoping, data import and any custom module build are not covered by hosting fees, and implementation on both sides runs through the vendor or certified partners. The ERPNext Data Import tool handles CSV and Excel files and advises importing only a few thousand records at a time, so a large history needs several passes and a test run. Custom logic has its own cost: Server Scripts are disabled by default from version 15, and Frappe Cloud public shared benches do not allow them, which may push custom code to a dedicated bench. Recurring upgrade work also matters. Odoo requires major upgrades every two years on Odoo.sh, and Frappe supports version 15 until the end of 2027 and version 16 until the end of 2029. Request a quote that itemizes user or site fees, support plans, upgrade and test-environment effort, data migration volume, custom module acceptance and partner day rates.
Which managed host fits custom code, Studio and multi-company
If your Odoo footprint is mostly standard apps with little or no custom code, the hosting decision turns mainly on plan price and version cadence rather than on code hosting rules. Odoo's pricing page lists One App Free and Standard as Odoo Online only, so Odoo.sh is not available to you on those plans. Frappe Cloud publishes shared site pricing starting at 5 US dollars per month, and ERPNext can also be self-hosted for free, which changes the comparison for small teams.
- Plan eligibility: Odoo.sh requires the Custom plan, so a standard-apps team on Odoo must budget for Custom or accept Odoo Online.
- Published prices: Frappe Cloud lists shared site and server prices on its ERPNext pricing page, which makes early cost comparison straightforward.
- Version cadence: Odoo SaaS versions are released every two to three months and cannot use extended support, so plan for regular upgrades.
- Mandatory upgrades: On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years.
- Frappe support: Frappe's supported versions policy ties warranty coverage to a listed version and a matching Frappe Cloud support plan.
Confirm with each vendor which plan and support tier covers your user count, apps and integrations before comparing monthly figures.
Teams with substantial custom modules need to know which host accepts their code at all. Odoo's pricing page states that only the Custom plan can be hosted on Odoo.sh or on-premise, and that Custom includes custom modules. Odoo.sh therefore supports custom code on a supported Odoo version, but it comes with Odoo-managed branches and backups that your build process must fit into.
- Odoo.sh path: Custom modules are part of the Custom plan, which is the only Odoo plan that includes them.
- ERPNext path: Custom apps and customizations on Frappe Cloud depend on which bench type you buy, so confirm the exact rules for your site type.
- Server-side logic: Server Scripts are disabled by default from version 15 and must be enabled with the
server_script_enabledsetting, so check whether your logic needs them. - Support boundaries: Ask each vendor whether they support your modules, and under what plan, when an upgrade breaks them.
- Upgrade effort: Custom modules add testing time at every major upgrade, which is a cost you must size against your own code base.
Review your module list, dependencies and upgrade test plan with the host before you commit to either platform.
Groups running several legal entities need to confirm that the host supports the multi-company model they choose. The supplied Odoo facts state that multi-company is included only in the Custom plan, which means a multi-company Odoo group on Odoo.sh must be on that tier. The supplied Frappe facts do not describe a plan-level multi-company rule, so this point must be confirmed directly with Frappe before you decide.
- Odoo entitlement: Multi-company is a Custom plan feature, so budget for that tier if you run several entities in one database.
- Separate databases: Some groups run one database per company, which changes hosting, backup and reporting needs.
- Access separation: Confirm how each host and application separates records and user access across entities.
- Inter-company flows: Test inter-company transactions in a staging environment before going live.
- Frappe confirmation: Ask Frappe how its hosting handles multiple companies on one site and whether any restrictions apply.
Write down your entity structure and reporting requirements, then request written answers from both vendors.
Teams that depend on server-side logic or external API access must check both the plan and the host's execution rules. Odoo's pricing page states that external API access is included only in the Custom plan, so an integration-heavy Odoo team needs that tier on Odoo.sh. On the ERPNext side, Server Scripts run Python on document events or as API endpoints, but Frappe Cloud public shared benches do not allow them, which limits shared hosting for this use case.
- Odoo API access: External API access is a Custom plan feature on Odoo.sh.
- Frappe scripting limits: Frappe Cloud public shared benches do not allow Server Scripts, so you need a dedicated option if your logic runs there.
- Setting dependency: Server Scripts must be enabled with
server_script_enabledfrom version 15, which affects where you can run them. - Identity integrations: Confirm LDAP and social login support with each host, since the vendor docs describe these for self-hosted or specific configurations.
- Data import limits: The ERPNext Data Import tool is documented for only a few thousand records at a time, which matters for bulk integrations.
List every script, endpoint and identity integration you need, then confirm the required bench or plan type with Frappe and the Custom plan with Odoo.
What your team still runs on each managed host
This table shows who handles each recurring operating task under Odoo.sh on the Custom plan and under Frappe Cloud, labeled as vendor, partner or client. Read each row as a question to settle in your scope before choosing a host. Where a cell says to confirm, the answer is not settled in the vendor material reviewed here, so get it in writing before you sign.
| Task | Odoo.sh on the Custom plan | Frappe Cloud |
|---|---|---|
| Functional configuration | Client or partner configures apps, settings and workflows. Hosting does not include process design. | Client or partner configures apps, settings and workflows. Hosting does not include process design. |
| Custom module development and testing | Client or partner builds and tests modules. Only the Custom plan includes custom modules, so confirm the test environments before committing. | Client or partner builds custom apps. Server Scripts are off by default from v15 and blocked on public shared benches, so confirm the plan that allows them. |
| Platform upgrade testing | Vendor schedules mandatory major upgrades every two years. Client or partner tests the upgraded test database before production. | Vendor handles upgrades. Client or partner retests custom code and integrations on each new version. |
| Monitoring | Confirm with Odoo which monitoring and alerts the Custom plan includes. Partner may add external monitoring. | Vendor handles monitoring as part of managed hosting. Client or partner reviews alerts for business impact. |
| Incident response | Vendor supports the platform under its support terms. Client or partner owns business continuity decisions and user communication. | Vendor supports the platform. Warranty coverage requires a matching Frappe Cloud support plan, so confirm the plan. Client owns business continuity. |
| Backup verification | Confirm backup retention and restore rights with Odoo. Restore testing stays with client or partner. | Confirm backup schedule and restore rights in your plan. Restore testing stays with client or partner. |
| User access, LDAP and social login | Client or partner configures LDAP using Odoo's documentation. Confirm LDAP availability on Odoo.sh before scoping. | Client or partner configures LDAP and Social Login Key. Confirm both on shared benches before scoping. |
| Data imports | Client or partner runs imports. Confirm Odoo's batch size guidance and import limits in writing. | Client or partner runs imports. The Data Import documentation advises importing only a few thousand records at a time. |
How version lifecycles and forced upgrades change the workload
The biggest difference in day-to-day workload is how often each platform forces you to change versions. On Odoo, the Odoo.sh and Odoo Online lifecycle is short: SaaS versions are released every two to three months and cannot use extended support, and major version upgrades are mandatory every two years. Standard support covers three years after a major release, and security patches are only provided during that standard window. Once a major version leaves standard support, you cannot count on a security fix for it, so the upgrade is a security decision as well as a feature decision.
Frappe's policy works differently in what it asks of you. ERPNext and Frappe Framework versions have published end-of-life dates, and customers must be on a listed version and hold a matching Frappe Cloud support plan to receive warranty coverage from Frappe. The practical difference is that Frappe ties warranty to version eligibility and subscription, while Odoo ties security coverage to the standard support window and mandatory major upgrades. Ask each vendor which custom code, server scripts or third-party modules are covered by their warranty or support, since that determines who fixes what when a version moves.
Plan a recurring upgrade test cycle on either platform. Build a staging copy of production, run the upgrade there first, and test custom modules, integrations, reports and approval flows before you touch production. Confirm the current support dates directly with Odoo and Frappe before you commit, because release schedules and end-of-life dates change, and write the upgrade window and the tester sign-off into your operating procedure. Odoo's standard and extended support documentation and Frappe's supported versions page are the places to check.
Moving an ERP between Odoo.sh, Frappe Cloud and self-hosting
This sequence takes a live ERP from one hosting model to another while keeping data, custom code and users intact, and it ends with a tested cutover and a documented way back if the new environment fails.
Confirm the target platform and plan
Before any data moves, the platform owner confirms where the ERP will run and under which plan or subscription. For Odoo, only the Custom plan can be hosted on Odoo.sh or on-premise, and Odoo.sh and on-premise both depend on an Enterprise subscription for Enterprise features. For ERPNext, confirm whether the target is Frappe Cloud with a matching support plan or a self-hosted Docker or bench setup. Done means a written answer from the vendor or partner on the plan, the supported version and who operates the target. Ask both vendors for the supported migration route, because the supplied facts do not describe a direct path between the two hosts.
Export data and inventory custom code
The project team exports business data from the source system and lists every custom module, server-side script, integration and scheduled job. For ERPNext, the Data Import tool handles CSV or Excel imports, but the documentation advises importing only a few thousand records at a time, so large datasets need batching. Server Scripts on Frappe Cloud public shared benches are not allowed, so any script must be reviewed against the target host. Done means a signed inventory that maps each custom item to a decision: move as is, rewrite, or retire.
Check module and version compatibility
The team compares the source version and each custom or third-party module against the target version and its runtime requirements. Odoo 19 requires Python 3.10 or later and PostgreSQL 13 or later, and Odoo's upgrade service is available only to Enterprise subscribers on-premise. For ERPNext, Frappe Framework v16 requires MariaDB 11.8, Redis or Valkey 6 or later, Python 3.14 and Node.js 24, and Frappe's supported versions page lists which major versions receive support. Done means a compatibility matrix that the platform owner and the vendor have both reviewed.
Build and test a copy on the target host
The partner builds a staging environment on the target host, restores the exported data and deploys the custom code. Odoo documents database duplication with neutralization for test copies on on-premise installs, which is useful for rehearsing the restore without touching production mail or payment integrations. Where that route does not apply to your hosting model, ask the vendor for the equivalent. Done means the staging instance starts cleanly, scheduled jobs are paused or redirected, and the test copy is marked as non-production.
Validate data and user access
Finance and operations owners reconcile the staging data against the source for balances, open orders, stock counts and document totals, and they check that records and child table rows arrived intact. The identity team tests sign-in, role assignments and any LDAP or social login configuration, since those settings do not carry over automatically. Done means a written reconciliation report with every difference explained and a signed user acceptance sign-off.
Cut over to the target host
The team freezes writes on the source system, runs a final delta export, loads it into the target and repeats the reconciliation on the critical totals. DNS, integrations and user links are switched in a planned window agreed with the business. Done means production traffic runs on the target, the source is set to read-only, and the on-call contacts for both sides have confirmed in writing that the cutover is complete.
Retain a rollback path
The source environment stays intact and read-only for an agreed period, and the team keeps a verified backup taken just before cutover. The rollback steps are written down, including who decides to roll back, how DNS is reverted and how writes made on the target are reconciled or discarded. Done means a rehearsed rollback runbook with named owners, and a closure review only after the business confirms the target is stable.
What buyers ask before choosing a managed ERP host
Is Odoo.sh available without the Custom plan?
No. According to Odoo's pricing page, only the Custom plan can be hosted on Odoo.sh or on-premise, while the One App Free and Standard plans are limited to Odoo Online. Custom is also the only plan that includes multi-company, Odoo Studio, external API access and custom modules, so a team that needs Odoo.sh for custom code is buying Custom. Custom is priced per user per month with a yearly discount, so ask Odoo for a quote based on your user count before you compare it with Frappe Cloud's published starting prices. Confirm current plan terms on the pricing page, since they can change.
What does Frappe Cloud cost at the starting prices?
According to the ERPNext pricing page, Frappe Cloud shared site hosting starts at 5 US dollars per month, shared servers start at 20 US dollars per month and dedicated servers start at 125 US dollars per month. These are starting points. The total rises with the tier you choose, the number of sites and servers you run, and any support plan you add, because Frappe's warranty coverage requires a matching Frappe Cloud support plan. Implementation through a certified partner is a separate cost, priced from the written scope. Ask Frappe for current figures for the tier, support plan and site count you need.
How long does a migration to a managed ERP host take?
No migration duration is supplied for either host, so treat any timeline as unconfirmed until it is written into a scope. Duration depends on data volume, the number of customizations and integrations to rebuild, the source system's version, and how much history you keep. For ERPNext, the Data Import documentation advises importing only a few thousand records at a time, which can lengthen bulk loads of master data. Ask the vendor or partner for a timeline based on your data and test the migrated copy before cutover. Fixed-scope engagements from DeployOpen set deliverables and dates in writing before work starts.
Can a small team run Odoo.sh or Frappe Cloud without outside help?
Managed hosting removes much of the server work, but the team still owns functional configuration, data quality, testing and any custom code. On Odoo.sh, custom modules are maintained through Odoo-managed branches, so someone on the team needs to keep them working across major versions. On Frappe Cloud, the platform handles installation, upgrades, monitoring and support, but customizations written as Server Scripts may not be allowed on every bench type. Whether in-house staff can cover this depends on their skills and workload, so confirm each plan's support scope in writing. DeployOpen works on self-hosted platforms inside your own cloud accounts or data centers, which suits teams that want the platform under their own control.
What upgrade work does a managed host leave to my team?
Managed hosting reduces server work, but application upgrades still need testing and owner decisions. On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years, and Odoo's upgrade documentation says to test the upgraded test database before production. Odoo's standard support runs three years after a major release, and paid extended support is limited to Odoo.sh for select versions and on-premise. ERPNext has its own cycle: v15 is planned to be supported until the end of 2027 and v16 until the end of 2029, and customers must stay on a listed version to keep Frappe's warranty coverage. Plan test cycles, custom code review and a release calendar for whichever host you choose.
Does Frappe Cloud allow server scripts?
Not on public shared benches. According to the Frappe documentation, Server Scripts run Python on document events or as API endpoints. Starting from version 15, they are disabled by default and must be enabled with the server_script_enabled setting, and Frappe Cloud public shared benches do not allow them. If your ERPNext logic depends on server scripts, check which bench type you would use before you design the solution. Where the bench type restricts scripts, consider whether the logic belongs in code your team reviews and maintains, and confirm with Frappe which options the plan supports.
Does managed hosting alone satisfy compliance requirements?
No. Managed hosting covers part of the infrastructure, but a compliance program also depends on access control, change management, data handling, logging, backups and evidence that you can produce yourself. A hosting plan does not make a platform certified. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications; independent auditors and certification bodies do. Ask each host which controls its operations cover, what logs and evidence you can export, and where your data is stored, then map the gaps against the framework your regulator or customers require.
How DeployOpen scopes, delivers and supports self-hosting and operations
DeployOpen plans, implements, integrates, hardens, backs up, upgrades, documents and supports open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Odoo.sh vs Frappe Cloud, the work starts with a written scope that states which hosting model, which edition and which customizations are in play.
How we scope
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- The written scope states whether the platform runs on Odoo.sh, Frappe Cloud or your own servers, and which edition applies.
- Scope also lists custom modules or apps, data migrations, identity integrations and the environments you need for testing.
How we build
- Work is carried out in a staging environment that mirrors the target hosting model before anything reaches production.
- Customizations, integrations and hardening steps are documented against the agreed scope so your team can review them.
- Upgrade and backup procedures are tested on a copy of your data before they are relied on for production.
How we hand over
- Handover includes documentation of configuration, deployment steps, custom code and the operational runbook.
- Your team receives evidence of backup restores and upgrade tests, so you can verify the platform works as described.
- Ask in advance which artifacts, access and training are included in the written scope and which are optional.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after the initial engagement ends.
- Confirm with us which upgrade windows, response expectations and vendor support obligations the retainer covers.
- Any vendor support you need from Odoo or Frappe remains a separate contract that you hold directly with the vendor.

