Skip to content
Guides

How to migrate from Odoo.sh to your own cloud

Moving off Odoo.sh is mostly about planning: a good backup, your custom modules, a test run and a short cutover window. Here is the full checklist.

Key takeaways

  • Your custom modules already live in your GitHub repository, so they move with you.
  • Download a backup with the filestore from Odoo.sh and restore it on the new server.
  • Do a full test migration first, then a short final cutover with a fresh backup.
  • Your Enterprise subscription stays with Odoo S.A.; talk to them about the hosting part.

Still deciding whether to move? Read the Odoo.sh limitations to know before you commit.

Before you start: take inventory

  • Odoo version. Migrate on the same major version first, and upgrade separately later. CloudPilot runs Odoo 18, 19 and 20.
  • Custom modules. On Odoo.sh these live in your GitHub repository. Note the branch that production runs, and any submodules.
  • Integrations. List anything that talks to Odoo: payment providers, email servers, webhooks, API clients and IP allowlists.
  • Database and filestore size. This decides how long backups and restores take, and how much disk the new server needs.

Step 1: Size and create the new server

Pick a server with at least the CPU and memory your Odoo.sh workers used, and enough disk for the database, filestore and local backups. Our Odoo server sizing guide explains how workers map to CPU and RAM.

In CloudPilot, connect your cloud account (AWS, Google Cloud, Azure, Hetzner and others) and create a server in the region closest to your users, or add your own machine over SSH.

Step 2: Connect your Git repository

Connect the same GitHub repository and production branch you used on Odoo.sh. CloudPilot deploys your custom modules from it and redeploys on every push, so your development workflow barely changes.

Step 3: Download a backup from Odoo.sh

From your production branch on Odoo.sh, download a backup that includes the filestore. The archive contains the database dump and the attachments (the filestore), and both are needed for a complete restore.

Step 4: Restore it as a test instance

Create an instance from the backup in CloudPilot. It restores the database and filestore and gives the instance a free subdomain with SSL, so you can test without touching your live domain.

Step 5: Test everything

  • Log in as a few different users and check access rights.
  • Open the screens and reports your team uses daily, including custom modules.
  • Check scheduled actions, and make sure the test copy does not send email to customers or call live integrations.
  • Time a few heavy operations, such as large reports or imports, and compare them with Odoo.sh.

Step 6: Plan the cutover

  1. Lower the TTL on your domain's DNS records a day ahead.
  2. Announce a short maintenance window and stop users from working on Odoo.sh.
  3. Take a fresh backup with filestore from Odoo.sh and restore it on CloudPilot.
  4. Add your custom domain to the instance and point DNS at the new server. CloudPilot issues the SSL certificate.
  5. Update integrations, webhooks, email settings and IP allowlists.
  6. Turn on automated backups, and offsite copies to your own S3, Azure Blob, Google Cloud Storage or SFTP storage.

Step 7: Your Enterprise subscription

Your Enterprise subscription is with Odoo S.A., not with Odoo.sh hosting. Contact Odoo to stop the Odoo.sh hosting part of your contract and to confirm your subscription is linked to the migrated database. Then add your subscription code to the instance in CloudPilot.

After the move

Keep the Odoo.sh project for a few days as a fallback, then cancel it. From here, use staging copies to test module changes and version upgrades before they reach production.

Weighing the move first? The Odoo.sh alternative page compares features and cost at 10 and 25 users. Odoo documents how to download backups in the Odoo.sh branches guide.

Frequently asked questions

How long does it take to migrate from Odoo.sh?

The test migration usually takes an afternoon. The final cutover takes as long as one backup and restore of your database and filestore, often under an hour for small and mid-sized databases.

Do I need to change my custom modules?

No, as long as you stay on the same Odoo version. Connect the same Git repository and branch, and CloudPilot deploys the modules from it.

Keep reading

The best Odoo hosting platforms in 2026

Odoo Online, Odoo.sh, Cloudpepper, EasyInstance, CloudPilot or a plain VPS? We compare the main Odoo hosting options on editions, control, staging, backups and pricing.

How much does Odoo hosting cost in 2026?

Break down the real cost of hosting Odoo: licenses, servers, hosting platforms, backups and your time. Compare Odoo.sh, managed hosts and your own cloud for a typical business.

Run Odoo on your own cloud

Deploy, back up and monitor Odoo on AWS, Google Cloud, Azure, Hetzner or any server. 14-day free trial.