Features
Deployments
Overview

Deployments

Deployments are how your Odoo code gets from your Git repository to a running environment. This guide covers everything you need to know about triggering, monitoring, and managing deployments.


What is a Deployment?

A deployment is the automated process that:

  1. Connects to your server
  2. Pulls your code from Git
  3. Sets up the database
  4. Starts the Odoo application
  5. Configures routing and SSL

Each deployment creates a new version of your environment with the latest code from your repository.


Triggering a Deployment

Manual Deployment

  1. Navigate to your project in the dashboard
  2. Select the environment you want to deploy
  3. Click the button in Quick Actions:
    • Deploy: For first-time deployment (environment status is "pending")
    • Redeploy: For environments that have been deployed before
  4. Monitor the progress in real-time
⚠️

No Server Assigned: If your environment doesn't have a server, the Deploy button will be disabled. Assign a server in Settings → Resources first.

Unsaved Changes

If you have unsaved changes to your environment settings:

  1. An orange indicator appears on the Settings tab
  2. The Quick Actions panel shows "Unsaved changes" warning
  3. Click Save Changes before deploying

Automatic Deployment

Enable auto-deploy in your environment settings to trigger deployments automatically when you push code to your Git repository.


Deployment Triggers

Deployments can be triggered by:

TriggerDescription
ManualUser clicked Deploy or Redeploy
Git PushCode pushed to the tracked branch (with auto-deploy enabled)
WebhookExternal system triggered deployment via API
ScheduledScheduled deployment task
Auto DeployAutomatic deployment from configuration change
Config UpdateSettings changed that require redeployment

Viewing Deployment History

To view past deployments:

  1. Go to your ProjectEnvironment
  2. Look at the Recent Deployments section
  3. Or open the Deployments tab for full history

The deployment history shows:

  • Status badge (success, failed, or cancelled)
  • Git commit SHA (7 characters)
  • Relative time (e.g., "2h ago")
  • Click a deployment to view full logs

Understanding Deployment Status

StatusMeaning
PendingDeployment is queued and waiting to start
QueuedDeployment is in the queue for processing
BuildingDocker image is being built
DeployingDeployment is currently in progress
SuccessDeployment completed successfully
FailedDeployment encountered an error and stopped
CancelledDeployment was manually cancelled
Rolled BackDeployment was rolled back to a previous state

Viewing Deployment Progress

During Deployment

When a deployment starts, a progress widget appears showing:

  • Overall progress with step counter (e.g., "Step 5 of 14")
  • Current step name and status
  • Latest message from each step
  • Expandable logs for each step

Step indicators:

  • Green checkmark: Step completed
  • Blue spinner: Step in progress
  • Red X: Step failed
  • Gray circle: Step pending

Steps automatically expand when the deployment is in progress and collapse when completed. Click a deployment header to expand/collapse completed deployments.

Error Messages

If a step fails, an error banner appears at the bottom of the progress widget with the detailed error message.

After Deployment

  1. Open the environment details page
  2. Go to the Logs tab
  3. Select the deployment from the dropdown
  4. View logs grouped by deployment step

You can filter logs by level (info, warning, error) to find specific issues.


Deployment Steps

Each deployment follows these stages:

  1. Initializing - Preparing deployment configuration
  2. Connecting - Establishing connection to the server
  3. Creating Network - Setting up isolated Docker network
  4. Creating Database - Starting PostgreSQL container
  5. Cloning Repositories - Pulling code from Git
  6. Pulling Image - Downloading Odoo Docker image
  7. Generating Config - Creating Odoo configuration file
  8. Starting Container - Launching the Odoo application
  9. Installing Dependencies - Installing Python packages
  10. Initializing Database - Setting up the Odoo database
  11. Verifying DNS - Checking domain configuration
  12. Configuring Routing - Setting up HTTPS and routing
  13. Health Check - Verifying the application is responding
  14. Completed - Deployment finished

Migration Environments

For environments created from migrations (Odoo.sh, On-Premise, etc.):

Initial Restore

When you first deploy a migration environment, the backup is automatically restored.

Force Restore

After the initial restore, your data is protected. To re-restore from the original backup:

  1. A "Re-restore from original backup?" card appears in Quick Actions
  2. Click the button to open the confirmation dialog
  3. Review the warning about data loss
  4. Type "restore" to confirm
  5. Click Force Restore
⚠️

Force restore overwrites all data added since the original migration. Use with caution.


Server Capacity Validation

Before deploying, the system validates that your environment's resources (CPU, RAM, Disk) don't exceed the server's capacity:

  • If resources exceed capacity, an error banner appears
  • The Deploy/Save button is disabled
  • Reduce resources or choose a different server

Canceling a Deployment

If you need to stop a deployment in progress:

  1. Navigate to the active deployment
  2. Click the Cancel button
  3. Confirm the cancellation

Note: Canceling a deployment does not automatically clean up partial resources. You may need to redeploy or destroy the environment afterward.


Retrying a Failed Deployment

If a deployment fails due to temporary issues (network timeout, server unavailability):

  1. Find the failed deployment in the history
  2. Click the Retry button
  3. The system creates a new deployment with the same code

Use retry when external issues caused the failure. If your code has bugs, push fixes first and trigger a new deployment instead.


Troubleshooting

Deployment Stuck

If a deployment remains in "pending" or "deploying" status for more than 30 minutes, the system automatically marks it as failed. You can then retry or investigate the logs.

Common Errors

ErrorSolution
SSH connection timeoutCheck that the server is online and accessible
Git clone failedVerify repository access and credentials
Health check failedApplication may need more time to start, or there may be code issues
Resource limit exceededReduce CPU, RAM, or disk allocation
No server assignedAssign a server in environment settings

What's Next?