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.
One project per client
Everything about a client lives in its project: instances, code, backups, configuration and the people who may see it.
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.
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.
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.
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.
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.
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.
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.
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.
Stagings, archives and moves
Test copies that stay harmless, instances you can put away and bring back, and servers you can change.
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.
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.
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.
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.
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 an instance to another server from the panel when a client outgrows theirs, or to consolidate several clients on one.
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.
Stakeholder
Sees the projects and instances assigned, follows their activity and signs in to their stagings to test.
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.
The same panel that is on GitHub
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'.
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.
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.
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.
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.
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.
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.
Once in the panel, an instance changes server with Move to host, including between a VPS ordered from the panel and a server of yours.
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.
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
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.
Half price for your first 3 months
50% off the first 3 months of a monthly plan, or 15% off the first year of an annual plan.
We help you migrate your Odoo projects to IncubaCloud.
The first 20 paid subscriptions.
Enter FOUNDER as the discount code at checkout.