Product Guide
Deployments
Deployment Lifecycle

Deployment Lifecycle

This page explains the step-by-step process behind each deployment type. Understanding these flows helps you troubleshoot issues and know what to expect when deploying, cloning, restoring, or migrating environments.


At a Glance

OperationReposDependenciesRestart After InstallFilestore Handling
First DeployGit cloneInstalledYes (if needed)N/A
RedeployGit cloneInstalledYes (if needed)N/A
Auto-Deploy (Fast)Git pullSkippedRestart onlyN/A
Auto-Deploy (Full)Git cloneInstalledYes (if needed)N/A
CloneCopied from sourceInstalledYes (if needed)Host-level restore
RestoreUnchangedInstalledYesHost-level restore
MigrationGit clone + customInstalledYesHost-level restore

First Deploy

When you deploy an environment for the first time, the platform sets up everything from scratch.

Connect to Server

Connects to your assigned server.

Set Up Database

Creates and configures a PostgreSQL database, optimized for your allocated resources.

Configure DNS

Sets up DNS records early so SSL certificates can be provisioned while other steps run.

Clone Repositories

Pulls code from all configured Git repositories:

  • Platform addon repositories
  • Organization addon repositories
  • Your project's primary repository

Start Odoo

Pulls the correct Odoo image for your selected version, generates the configuration file, and starts the application.

Install Dependencies

Scans all cloned repositories for dependency files:

  • apt.txt -- system packages
  • requirements.txt -- Python packages

If Python packages were installed, Odoo restarts to load the new modules.

Initialize Database

Runs Odoo's database initialization to set up the base modules.

Configure SSL

Sets up HTTPS with an automatic SSL certificate via Let's Encrypt.

Health Check

Verifies the application is responding and marks the environment as running.


Redeploy

Triggered from the Redeploy button in the dashboard. Follows the same flow as First Deploy -- re-clones code, reinstalls dependencies, and restarts Odoo.

Redeploy does not destroy your database. It rebuilds the application and re-clones your code, but your data persists.


Auto-Deploy (Webhook)

When you push code to your tracked branch with auto-deploy enabled, the platform automatically chooses between Fast Deploy or Full Deploy.

Fast Deploy

Used when your push only contains code changes (no dependency file modifications) and dev mode is enabled.

Pull Latest Code

Fetches and resets to the latest commit from your primary repository and all addon repositories.

Restart Odoo

Restarts the application to load the updated code.

Health Check

Verifies Odoo is responding (90-second timeout).

Fast Deploy completes in 10-30 seconds vs 3-5 minutes for a full deploy.

⚠️

Fast Deploy is skipped and a full deploy runs instead when any of these files are modified: requirements.txt, apt.txt, setup.py, pyproject.toml, setup.cfg, Pipfile, Pipfile.lock, poetry.lock

Full Deploy (via Webhook)

When dependency files are changed or dev mode is not enabled, the webhook triggers a full deploy — same flow as Redeploy.


Clone

When you clone an environment, the platform creates an exact copy of your source environment on the same or a different server.

Create Target Environment

Sets up the target environment with its own database and application instance.

Copy Code

Copies all addon source code from the source environment to the target. Cross-server clones transfer data securely between servers.

Backup Source Data

Creates a database backup and filestore archive from the source environment.

Restore Database and Files

Stops the target application, restores the database and filestore from the source backup, then starts the application once all data is in place.

Install Dependencies

Scans all addon repositories for apt.txt and requirements.txt and installs them.

Neutralize (Optional)

If enabled, runs Odoo's native neutralize command to disable:

  • Outgoing emails and mail servers
  • Scheduled actions (crons)
  • Payment providers
  • Webhooks and OAuth integrations

This prevents the cloned environment from affecting production services.

Verify and Configure SSL

Verifies the clone, sets up DNS, and provisions an SSL certificate.

Cross-server clones work seamlessly. The platform handles the data transfer between servers automatically via secure SFTP.


Restore

When you restore an environment from a backup, the platform replaces the current data with the backup contents.

Download Backup

Downloads the backup archive from your configured storage provider (S3, R2, B2, MinIO, FTP, or SFTP).

Extract Backup

Extracts the backup archive containing the database dump, attachments/files, and backup metadata.

Stop Environment

Stops Odoo to prevent conflicts during data restoration.

Restore Database and Files

Replaces the existing database with the backup data and restores all attachments and files.

Start Environment

Starts Odoo with all data fully restored.

Verify Health

Waits for the application to become healthy and verifies it is responding.

Install Dependencies

Reinstalls apt.txt and requirements.txt packages from all addon repositories.

⚠️

Restoring a backup replaces all current data in the environment. Make sure you have a recent backup of the current state if needed.


Migration (Import from Odoo.sh)

When migrating from Odoo.sh or another hosting provider, the platform imports your backup and sets up a fully working environment.

Create Project and Environment

Creates a new project and environment in your organization.

Deploy Infrastructure

Runs a full deployment to set up the server, clone repositories, and install dependencies.

Download and Extract Backup

Downloads your uploaded backup from cloud storage and extracts it on the server.

Restore Database and Files

Stops the application, restores your Odoo database and all attachments from the backup, then starts the application with the migrated data.

Clone Custom Repository (Optional)

If you specified a custom Git repository during migration setup, clones it and installs its dependencies.

Configure SSL

Sets up HTTPS with an automatic SSL certificate for your new domain.

Verify Migration

Confirms the database has been properly restored, then marks the migration as complete.

After migration, your environment is protected from accidental re-restore. To restore from the original backup again, use the Force Restore option with type-to-confirm safety.


Dependency Handling

All deployment flows that install dependencies follow the same process:

  1. Scan all addon repositories for apt.txt and requirements.txt
  2. Install system packages from apt.txt (includes build tools needed for Python compilation)
  3. Install Python packages from requirements.txt
  4. Restart Odoo if any Python packages were installed, so new modules get loaded

Tip for addon developers: Place your requirements.txt and apt.txt files in the root of your addon repository. The platform automatically detects and installs them during every deployment.


Troubleshooting

Errors After Restore or Clone

If your environment shows errors after a restore or clone, it may be because the application started before all data was in place. The platform prevents this by stopping the application before any data restoration and only restarting it after everything is fully restored.

If you still experience issues, try a Redeploy to rebuild from scratch.

Missing Python Dependencies After Clone

After cloning, the target environment automatically installs all requirements.txt and apt.txt packages found in your addon repositories. If packages are still missing, verify that your dependency files are in the repository root and try a Redeploy.