An Odoo staging environment is a private copy of your live instance, with the same database, filestore, modules and Python packages, where you can try a new module, test an Odoo upgrade path, or import messy data without touching production. On Easy Instance you create one from the instance sidebar in a few clicks, and it is neutralized so it cannot email your customers or run scheduled jobs against real systems.
Before you create a staging environment
Staging is always copied from a production instance. If you do not have one yet, deploy Odoo first. Two things must also be in place:
- An active subscription on the production instance. Otherwise you get "An active subscription is required to create a staging copy."
- A linked GitHub repository, so the copy runs the same custom code. Link one from the instance's Git tab; see Odoo custom modules from GitHub.
You need Admin access to the project to see the create button.
Step 1: Create the staging instance
- Open your production instance. The left sidebar lists Production and Staging with the instances in each.
- Click the + next to Staging (its tooltip reads "New staging instance").
- The Create a staging instance dialog explains that it is a copy of your production instance with its data. Type a short name, for example
test. Only lowercase letters, numbers and hyphens are accepted. - Check the preview under the field. The final name is
<production>-<your name>-<6 digits>, for examplemy-company-test-482913, and that is also its subdomain. - Click Create.
The dialog closes and the new instance appears under Staging in the sidebar. While it builds, Easy Instance copies the production database and filestore, carries over the edition, installed modules and Python packages, and then neutralizes the copy. Larger databases and filestores take longer.
On billing, the dialog says a staging instance is free to create and its usage is added to your next bill. On a dedicated plan it runs on your dedicated server, and the dialog shows how many of your included staging copies you have used.
Step 2: Check that the copy is neutralized
Open the staging instance with Open Instance or Log in. Odoo shows a red banner at the top: "Database neutralized for testing: no emails sent, etc."
Easy Instance runs Odoo's own odoo neutralize command and adds its own safety steps. On the copy:
- Outgoing mail is off. Outgoing mail servers are removed and queued emails are cancelled, so invoices, campaigns and password resets never reach real customers.
- Scheduled actions are disabled. Cron jobs for recurring invoices, syncs and cleanups do not run on copied data.
- Webhooks and mail integrations are cleared. Webhook records and Gmail/Outlook OAuth credentials are removed, and Odoo's neutralization disables integrations it knows about, such as payment providers.
- The URL points to staging. The base URL is set to the staging address, so links in the copy do not lead back to production.
If a third-party module calls an external API in its own code, check it yourself before testing, since neutralization only covers what Odoo and Easy Instance know about.
Step 3: Push code to the staging branch
Each staging instance tracks its own Git branch, named exactly like the staging instance (for example my-company-test-482913). Easy Instance creates it from your repository's default branch if it does not exist. Push to that branch to test code on staging; production keeps following the branch you chose for it. When the change works, merge it into the production branch.
Step 4: Test module installs and upgrades safely
A staging instance has the full console: Overview, Metrics, Logs, Git, Shell, Packages, Backups, Marketplace, Insy and Settings all act on the copy only. Typical uses:
- Install a module from the Marketplace and check what it changes before installing it on production.
- Test a new version of your custom module, including its data migration scripts, against real data.
- Add a Python package from the Packages tab and confirm the module that needs it installs cleanly.
- Read Logs or open the Shell to debug a failure, with no risk to production.
You can keep several staging instances at once, for example one long-lived copy for QA and a short-lived one for a single test. When the list grows, the sidebar shows the newest first and folds the rest behind See more. A production instance has a limit on how many staging copies it can hold at the same time; if you hit it, contact support.
A staging workflow like Odoo.sh, on any edition
Staging on Easy Instance works with Odoo Community and Enterprise, version 17 to 20, alongside GitHub deploys, backups and monitoring. If you are comparing platforms, see the Odoo.sh alternative page and pricing, or start a 10-day free trial with no credit card.