Product Guide
Deployments
Overview

Deployments

Deployments take your Odoo code from a Git repository and get it running in an environment. Each deployment connects to your server, pulls your code, sets up the database, starts Odoo, and configures routing with SSL.


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 (Webhooks)

Enable auto-deploy to trigger deployments automatically when you push code to your Git repository. This requires a webhook on your repository.

Setting up webhooks:

  1. Automatic: When creating a project with an OAuth Git connection, the webhook is created automatically
  2. Setup button: Go to Project Settings > Repository > click "Setup Webhook" (requires OAuth connection)
  3. Manual: Copy the webhook URL and secret from Project Settings and add them to your Git provider

Enabling auto-deploy per environment:

  1. Go to your Environment > Settings
  2. Enable the Auto-Deploy toggle
  3. Pushes to the tracked branch will trigger deployments

For detailed webhook setup instructions, see the Git Connections documentation.


Deployment Triggers

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

Deployment History

To view past deployments:

  1. Go to your Project > Environment
  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

Deployment Status

StatusMeaning
PendingDeployment is queued and waiting to start
QueuedDeployment is in the queue for processing
BuildingApplication 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 - Connecting to your server
  3. Setting Up Database - Provisioning and configuring PostgreSQL
  4. Cloning Repositories - Pulling your code from Git
  5. Starting Odoo - Launching the Odoo application
  6. Installing Dependencies - Installing Python and system packages
  7. Initializing Database - Setting up the Odoo database
  8. Configuring SSL - Setting up HTTPS with automatic certificates
  9. Health Check - Verifying the application is responding
  10. Completed - Deployment finished

Fast Deploy

Fast Deploy is an automatic optimization that speeds up deployments for code-only changes. When it kicks in, deployments complete in 10-30 seconds instead of 3-5 minutes.

How It Works

When you push code changes, the system automatically detects whether a full rebuild is necessary. If only your Odoo code changed (no dependency changes), Fast Deploy:

  1. Pulls the latest code from Git
  2. Restarts Odoo
  3. Skips the full rebuild, dependency installation, and database initialization

Requirements

Fast Deploy activates automatically when both conditions are met:

  1. Dev mode is configured - Your environment has a non-empty dev_mode value in Odoo Configuration settings (e.g., all, reload, qweb)
  2. No dependency file changes - The Git push doesn't modify any of these files:
    • requirements.txt
    • apt.txt
    • setup.py
    • pyproject.toml
    • setup.cfg
    • Pipfile
    • Pipfile.lock
    • poetry.lock

Identifying Fast Deploy

When Fast Deploy is active, your deployment logs will show:

Fast deploy mode enabled - skipping full rebuild

The deployment progress will show fewer steps since the full build and dependency installation are skipped.

When Full Deploy Runs Instead

A full deployment always runs when:

  • First deployment - Environment has never been deployed
  • Dependency changes - Any dependency file was modified in the commit
  • Dev mode not set - Environment doesn't have dev mode configured
  • Infrastructure changes - Server, resources, or database settings changed
  • Manual request - User explicitly requested a full rebuild

Fast Deploy is completely automatic. Just configure dev mode in your environment settings and the system handles the rest.

Enable Dev Mode for Development

For development environments, enable dev mode to get Fast Deploy:

  1. Go to your environment Settings > Odoo Configuration
  2. Set Dev Mode to all or reload
  3. Save and redeploy

All subsequent code pushes will use Fast Deploy, making your development loop much faster.


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