The wrong hosting for the requirements
A database on Odoo Online that now needs custom Python code, or a self-hosted server with no one to maintain it.
Odoo ERP · Hosting & deployment
Where Odoo runs decides what you can customize, how upgrades work and who gets called when something fails at night. We help you choose, then build the deployment so releases are routine.
Odoo hosting and deployment covers choosing where an Odoo database runs (Odoo Online, Odoo.sh or a self-hosted server) and setting up the environment so code and configuration can be released safely. On Odoo.sh that means organizing the Git repository, branches and staging builds; on a self-hosted server it means installing Odoo, PostgreSQL, a reverse proxy, workers, backups and monitoring. The aim is a production system that is stable and a release process that is predictable.
Hosting is often decided by default: whatever the first implementer preferred. Later the business discovers it can't install a custom module on Odoo Online, that its self-hosted server has never had a restore tested, or that developers push code to production on Odoo.sh without staging. Changing hosting after go-live is possible but disruptive. Getting the choice and the deployment discipline right early saves considerable pain.
A database on Odoo Online that now needs custom Python code, or a self-hosted server with no one to maintain it.
Code and module updates go live without being built and tested against a copy of production data first.
Backups exist on paper, but nobody has restored one, and the filestore with attachments may not be included.
Default settings with too few workers and an untuned PostgreSQL make Odoo sluggish once the whole company logs in.
Comparison of Odoo Online, Odoo.sh and self-hosting against your edition, customization needs, IT capacity and data location preferences.
GitHub repository structure, submodules for third-party addons, production, staging and development branches, and a release routine your team can follow.
Odoo installed natively or in Docker containers, PostgreSQL configured, Nginx reverse proxy with HTTPS, multi-worker mode and real-time (websocket) routing.
Scheduled database and filestore backups stored off-server, retention policy, and a documented, tested restore procedure.
Worker counts, memory limits, time limits and PostgreSQL settings sized for your users, plus review of slow requests and scheduled jobs.
Migration of a database between Odoo Online, Odoo.sh and self-hosted servers, including filestore, custom modules and DNS cut-over.
Your choice supports the customizations and integrations you'll need, not just today's setup.
Changes move through staging to production in a repeatable way, reducing release-day surprises.
A tested restore procedure means a failure is an inconvenience, not a crisis.
Properly sized workers and database settings keep Odoo usable at busy times.
A company with several custom modules uses Odoo.sh branches so every change is built and tested on staging before production.
A business on Odoo Community runs it in Docker on a cloud server with automated backups and monitoring.
A database that now needs custom code is moved from Odoo Online to Odoo.sh without losing data or attachments.
An organization that must keep data on infrastructure it controls deploys Enterprise on its own servers.
The hosting choice is made against your roadmap first; the environments follow from it.
Review edition, custom code, users, integrations and your IT team's capacity.
Recommend Odoo Online, Odoo.sh or self-hosting, with the trade-offs written down.
Set up production, staging and development, whether as Odoo.sh branches or separate servers.
Workers, proxy, mail, scheduled jobs, backups and monitoring configured and documented.
Install modules, restore or migrate the database, and verify everything on staging first.
Document how releases, backups and restores are done, and who does each.
| Criterion | Odoo Online | Odoo.sh | Self-hosted |
|---|---|---|---|
| Edition | Enterprise | Enterprise | Community or Enterprise |
| Custom Python modules | No | Yes | Yes |
| Staging environments | Test databases only | Built-in staging and development branches | You build them |
| Server access | None | Shell access, managed platform | Full root access |
| Who maintains infrastructure | Odoo | Odoo | You or your provider |
| Best fit | Standard processes, little IT capacity | Customized Enterprise with a dev workflow | Community edition, full control or data location needs |
TLS on all traffic, database manager access restricted, and master password set and protected.
Firewall rules, SSH key access, non-root Odoo service user and regular operating system updates on self-hosted setups.
Staging and development are set up not to send real emails or touch production integrations.
Server resources planned for peak usage and growth, with monitoring alerts before limits are reached.
We'll recommend Odoo Online if it truly fits, even though it leaves less work for us.
Our infrastructure work with Docker, CI/CD and server management carries directly into Odoo deployments.
We test the restore procedure before calling a deployment finished.
You receive runbooks for releases, backups and recovery so you aren't dependent on us.
Fixed-price packages with the scope written down, paid stage by stage. Your project goes live once it's fully paid.
Official documentation and guidance if you want to read more about this topic.
Odoo Online is fully managed SaaS that does not allow custom Python modules, while Odoo.sh is a managed platform that lets you deploy custom code from a Git repository with staging and development branches. Both run Odoo Enterprise and are operated by Odoo.
No, Odoo.sh and Odoo Online are for Odoo Enterprise. Odoo Community is run on self-hosted infrastructure, such as a cloud server or your own hardware.
Self-hosting makes sense if you use Community, need full server control or must keep data on infrastructure you manage, and you have someone to maintain it. Otherwise, Odoo.sh or Odoo Online remove most of the infrastructure work.
Yes, Odoo runs well in Docker with PostgreSQL in a separate container or a managed database. Containers make it easier to reproduce environments and roll out updates consistently.
Yes, an Odoo Online database can be moved to Odoo.sh or a self-hosted server, including attachments. The databases must be on a compatible version, so a move is sometimes combined with an upgrade.
Back up both the PostgreSQL database and the filestore, store copies off the server, and test restoring them regularly. Odoo.sh provides automated backups; self-hosted systems need their own schedule.
Next step
Tell us your edition, customizations and IT setup. We'll recommend a hosting model and outline the deployment.