Skip to Content
For Odoo partners and agencies

Your clients' Odoo, run from one panel

IncubaCloud is a panel to deploy and run Odoo on your own servers. One project per client, with its production, its stagings, its repositories, its backups and its people; each client sees only its own. The code is on GitHub, free to install and use.

Rather not install the panel on a server of your own? The hosted platform, with the Agency plan and the founder offer, is at the end of this page.
Client portfolio

One project per client

Everything about a client lives in its project: instances, code, backups, configuration and the people who may see it.

Production, stagings and archive

One production instance and as many stagings as the client needs. A production rebuild runs a boot test first: the new image is tried on a copy of the database and, if it fails, the live instance is not touched. An instance the client no longer needs is archived rather than deleted: it leaves the server, one restorable copy is kept and it can be revived later on any server.

Repositories and updates

The client's Git repositories and branches, private ones through the GitHub App. A push can rebuild the instance, updating only the modules that changed. Pin a repository to its current commit when a production must not move with its branch.

Backups and recovery

Nightly encrypted backups to a bucket the client or you own, set once on the project and inherited by its instances. Continuous recovery takes a production back to any minute of its backup window.

The client's people

Add the client's users to its project as Stakeholder: they see that project and nothing else. A Consultant on your team works only on the projects you assign; the rest of your team sees them all. The panel keeps an audit log of who did what.

Configuration

The Odoo series, the system and Python dependencies and the initial language are set on the project. Compare any instance with its project and apply the differences. Odoo Community or Enterprise, with the Enterprise code coming from the client's repositories.

Domains and certificates

Each instance answers to the client's domains, with a certificate from Let's Encrypt or one you load on the server, and redirects between them.

Monitoring and alerts

CPU, memory, disk and HTTP traffic for each server and instance, with nothing to install. Alerts and job outcomes reach each person by email, Telegram or webhook, at the level they choose.

AI agents

Claude Code, Cursor or any MCP agent works on the panel as you, with your role and your projects: it reads logs, deploys, clones a staging or opens a pull request, and waits for your approval before anything that cannot be undone.

Lifecycle

Stagings, archives and moves

Test copies that stay harmless, instances you can put away and bring back, and servers you can change.

Clone and refresh

Clone a production into a new staging, or refresh an existing one from the latest backup or a live dump, keeping the staging's own code. The copy comes up neutralized: scheduled actions and outgoing mail off, test banner on.

Caught mail, closed network

A staging never emails anybody: what it sends is caught in a mailbox you read from the panel. On the internet it reaches only the hostnames you allow, so a test cannot call a payment gateway or a client's webhook.

Pull request previews

Switch it on per project and every pull request gets a staging of its own, with a copy of production's data and its link posted on the pull request. Each push rebuilds it; closing the pull request deletes it.

Stagings that expire, and ones that do not

A staging nobody has used for 90 days is deleted, after two warnings; one click on Keep starts the window over, and the window is yours to change. Mark the permanent ones as never purged. Production is never touched.

Archive and revive

Archiving takes a fresh backup, removes the instance from the server and keeps exactly that copy, with its size visible in the project's Archived tab. Revive it on the same server or another, or delete it, copy included.

Move between servers

Move an instance to another server from the panel when a client outgrows theirs, or to consolidate several clients on one.

Roles

Each client sees only its own

A Stakeholder or Consultant sees only the projects they are members of; the other three roles see them all. An AI agent acts with the role of the person who connected it.

Client role: its project
  • Stakeholder
    Sees the projects and instances assigned, follows their activity and signs in to their stagings to test.

Your team's roles
  • Consultant
    Works only on the projects assigned: everything a Stakeholder does, plus creating, deploying, rebuilding, keeping and deleting stagings.

  • Project Manager
    Sees every project and creates new ones.

  • Developer
    Adds terminal, logs, backups and export; clones and refreshes stagings, revives archived instances and signs in to production.

  • Administrator
    Full access: servers, settings, GitHub, backup destinations, moving instances and deleting a production.

Source code

The same panel that is on GitHub

Install it on your own server

The code is on GitHub, free to install and use. The panel runs on a server of yours and manages the servers and instances you connect to it, your own and your clients'.

See the code on GitHub

Licence: Elastic License 2.0

Using the panel to deploy, run and support Odoo for your own clients, and giving them access to their projects with the client roles, is allowed. Offering the panel itself to third parties as a hosted or managed service is not.

Read the licence

Migration

An Odoo you already run

Pick the way in by where the client's Odoo lives now. Each one ends in a production instance inside the client's project, with the same stagings, backups and roles as any other.

From Odoo.sh

In Projects, click Import from GitHub and paste the repository's address. The panel reads the Odoo.sh layout, one repository line for the main repository and one per submodule, and creates the production instance; deploy it on a server and restore into it the backup downloaded from Odoo.sh. Worth knowing: the panel offers Odoo 18.0, 19.0 and 20.0; Enterprise code comes from the client's own subscription, added as one more repository line; submodules come in pinned to the commit they pointed at, and a push rebuilds the lines you leave unpinned when the repository is connected through the GitHub App; pull request previews are switched on per project and also need the App.

Migrate from Odoo.sh, step by step

From a repository on GitHub

Click the same Import from GitHub with any repository on GitHub: a Doodba project (the panel reads its repos.yaml, addons.yaml, pip.txt, apt.txt and, if present, the copier answers), an Odoo.sh layout or a repository of plain modules. A private repository comes through the GitHub App or a personal token; a public one needs neither. Repository lines point to GitHub, also the ones you add by hand with New Project.

A Doodba on a server of yours

Connect the server in Hosts (Add Host, then Trust SSH Key), open More, click Import Instance and pick the project's folder. The panel reads its copier answers, repos.yaml, environment and backup settings and creates the project and the instance mapped to that folder: nothing is copied and the running Odoo is not touched; from then on the panel deploys and rebuilds it. An MCP agent and the panel's assistant have the same import. It applies to Doodba projects generated with copier, with their repositories on GitHub; any other Odoo comes in through a backup.

Any Odoo, from a backup

Create the project and its production instance, deploy it and click Restore Database with the Odoo backup: a .zip with dump.sql and the filestore, the one Odoo's database manager and Odoo.sh produce. From the browser up to 2 GB, through SSH with a temporary upload key for larger files, or from an https, sftp or ftp link the server downloads itself. The backup must be of the instance's series. A production restore first takes a safety backup, so the project needs a backup destination.

Restoring a backup

Hosted platform

Or use it on our hosted platform

The same panel, hosted by IncubaCloud at an address of your own. You run it yourself, just as on your own server; the plans add higher limits and more computing power. The Agency plan is the one for a portfolio of clients.

Agency
149 EUR/month
124.17 EUR/month billed annually
  • 100 hosts · 150 instances; stagings do not count

  • Its own server for your panel

  • Unlimited users

  • Your own servers, or VPS ordered from the panel

  • Backups of your panel, kept 30 days

  • Same-business-day support, plus live chat

Compare all plans

Prices exclude VAT. A smaller portfolio fits Starter (5 instances), Professional (20) or Business (50); start on Free and change plan from your account when you need more.

Founder offer

Half price for your first 3 months

Discount

50% off the first 3 months of a monthly plan, or 15% off the first year of an annual plan.

Migration help

We help you migrate your Odoo projects to IncubaCloud.

Availability

The first 20 paid subscriptions.

Enter FOUNDER as the discount code at checkout.