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
| Operation | Repos | Dependencies | Restart After Install | Filestore Handling |
|---|---|---|---|---|
| First Deploy | Git clone | Installed | Yes (if needed) | N/A |
| Redeploy | Git clone | Installed | Yes (if needed) | N/A |
| Auto-Deploy (Fast) | Git pull | Skipped | Restart only | N/A |
| Auto-Deploy (Full) | Git clone | Installed | Yes (if needed) | N/A |
| Clone | Copied from source | Installed | Yes (if needed) | Host-level restore |
| Restore | Unchanged | Installed | Yes | Host-level restore |
| Migration | Git clone + custom | Installed | Yes | Host-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:
- Scan all addon repositories for
apt.txtandrequirements.txt - Install system packages from
apt.txt(includes build tools needed for Python compilation) - Install Python packages from
requirements.txt - 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.