Skip to main content

Deployments

Deployments host your Odoo server with the latest code changes from your repository. Learn how to create, update, and manage deployments on Skysize.

What is a Deployment?

A deployment is a running instance of your Odoo application. Each deployment:

  • Runs your latest code from a specific branch
  • Has its own database
  • Operates in an isolated environment
  • Can be independently configured and managed

Deployment Actions

When you push changes to your repository, Skysize can take one of three actions:

Create New

Creates a completely new deployment with its own database.

When to use:

  • First deployment of a new branch
  • Starting a new environment from scratch
  • Creating a fresh instance for testing

What happens:

  • New database is created
  • Application is deployed with latest code
  • Only the base module is installed (no automatic installation of custom modules)
  • Environment is configured
  • New URL is assigned

Note: Fresh deployments require you to manually install any custom modules you need. This gives you full control over which modules are active in your new environment.

Update

Updates the existing deployment with your new code changes.

When to use:

  • Deploying code changes to an existing environment
  • Applying bug fixes
  • Rolling out new features
  • Updating dependencies

What happens:

  • Existing database is preserved
  • Code is updated to latest version
  • All currently installed Odoo modules are updated automatically
  • Application restarts with new code

Note: Update deployments only update modules that are already installed in your database. Newly added modules in your codebase will not be automatically installed—you need to install them manually through the Odoo interface or database.

No Action

No deployment occurs—Skysize doesn't create or update anything.

When to use:

  • Changes that don't require deployment
  • Documentation updates
  • Configuration changes only
  • When you want to manually control deployments

Deployment Management by Branch Type

Production and Staging

  • Are never deleted automatically
  • Deployments remain running continuously
  • Updates are applied to the existing deployment

Development

  • Automatically garbage collected after 24 hours
  • Cost-effective for temporary testing
  • Redeploy if you need the environment again
  • Helps manage resource usage

Deployment Lifecycle

1. Trigger

Deployments can be triggered by:

  • Pushing code to your repository
  • Manual deployment through Skysize dashboard
  • Branch creation or updates

2. Build

Skysize builds your application:

  • Pulls latest code from repository
  • Automatically initializes and updates Git submodules (if present)
  • Installs dependencies
  • Prepares Odoo environment
  • Configures workers and resources

3. Deploy

Your application goes live:

  • Database is created or updated
  • Odoo server starts
  • Health checks confirm successful deployment
  • URL becomes accessible

4. Monitor

Track your deployment health:

  • View deployment status in dashboard
  • Monitor application logs
  • Check resource usage
  • Receive notifications for issues

Viewing Logs

To view deployment logs:

  1. Navigate to your deployment in the Skysize dashboard
  2. Click on the "Details" link for the specific deployment
  3. Access the logs viewer to see application output and errors

Log Retention: Logs are retained for 31 days. After this period, older logs are automatically deleted.

Managing Deployments

Creating a New Deployment

  1. Push code to a new branch in your repository
  2. Skysize detects the new branch
  3. Choose "Create New" deployment action
  4. Wait for build and deployment to complete
  5. Access your application at the assigned URL

Updating an Existing Deployment

  1. Push changes to an existing branch
  2. Skysize detects the changes
  3. Choose "Update" deployment action
  4. Existing deployment updates with new code
  5. Application restarts with changes

Rebuilding a Deployment

Rebuild creates a completely new deployment for a branch, replacing the previous one.

What happens:

  • A new deployment is always created with a fresh database
  • For staging branches: Creates a new snapshot of the production database
  • For development branches: Creates a new database with demo data
  • Previous builds of that branch become eligible for automatic garbage collection
  • The old deployment is marked for cleanup and its resources will be freed

When to use:

  • When you need a fresh database snapshot from production (staging)
  • When you want to start over with clean demo data (development)
  • After significant database schema changes
  • When troubleshooting persistent database issues
  • To force a complete refresh of your environment

Important notes:

  • Production rebuilds are restricted: For running production deployments, the rebuild action is disabled to prevent accidental data loss
  • Production deployments can only be rebuilt if they are not currently running
  • Rebuilding is a destructive operation—the previous deployment's database will be lost
  • Any uncommitted data or changes in the old deployment will be permanently deleted

How to rebuild:

  1. Navigate to your deployment in the Skysize dashboard
  2. Click on the "Manage deployment" menu
  3. Select "Retry Deployment" or "Rebuild" option
  4. Wait for the new deployment to complete
  5. The old deployment will be automatically cleaned up

Deleting a Deployment

Admins can delete deployments that are no longer needed:

  • Removes the deployment instance permanently
  • All deployment data is deleted
  • Resources are freed up
  • URL becomes inactive

Important notes:

  • Confirmation required: A confirmation modal will appear before deletion
  • Production warning: For production deployments, you'll see a prominent warning that this action cannot be rolled back
  • Irreversible action: Deleted deployments and their databases cannot be recovered
  • Admin only: Only users with admin access can delete deployments

How to delete:

  1. Navigate to your deployment in the Skysize dashboard
  2. Click on the "Manage deployment" menu (three dots)
  3. Select "Delete Deployment"
  4. Review the confirmation dialog (production deployments show additional warnings)
  5. Confirm deletion to permanently remove the deployment

Best Practices

For Production

  • Test before deploying: Always test changes in staging first
  • Deploy during low traffic: Schedule production updates during off-peak hours
  • Monitor after deployment: Watch for errors or issues after updates
  • Have a rollback plan: Know how to revert if something goes wrong
  • Avoid rebuilding running production: Rebuild is disabled for running production deployments to prevent data loss
  • Be cautious with delete: Production deletions show additional warnings—this action is permanent and cannot be undone

For Staging

  • Keep staging updated: Regularly update staging to match production
  • Use production data snapshots: Test with realistic data by rebuilding staging to get fresh production database snapshots
  • Rebuild regularly: Periodically rebuild staging deployments to ensure you're testing with current production data
  • Test thoroughly: Run full test suites before promoting to production

For Development

  • Clean up regularly: Delete unused development branches
  • Use short-lived branches: Take advantage of auto-cleanup after 24 hours
  • Test early, test often: Deploy frequently to catch issues early
  • Rebuild for fresh start: Use rebuild to get a clean database with demo data when testing from scratch

Troubleshooting

Deployment Fails

If a deployment fails:

  1. Check the deployment logs in Skysize dashboard
  2. Verify your code compiles successfully locally
  3. Ensure all dependencies are specified correctly
  4. Check for Odoo module errors
  5. Contact support if issues persist

Application Not Accessible

If you can't access your deployed application:

  1. Verify deployment status is "Running"
  2. Check the URL is correct
  3. Ensure DNS has propagated (for custom domains)
  4. Check firewall settings
  5. Review application logs for errors

Git Submodules Support

Skysize automatically supports public Git submodules in your repository. This allows you to:

  • Include third-party Odoo modules as submodules
  • Reference external libraries and dependencies
  • Keep your codebase modular and organized

How It Works

When you deploy your code:

  1. Skysize clones your repository with the --recurse-submodules flag
  2. All public Git submodules are automatically initialized and updated
  3. Submodule code is available in your deployment alongside your main code

Requirements

  • Public repositories only: Submodules must be publicly accessible
  • Standard Git submodules: Use .gitmodules file in your repository root
  • No authentication required: Private submodules are not currently supported

Example Use Case

Add an external Odoo module as a submodule:

git submodule add https://github.com/OCA/web.git addons/web
git commit -m "Add web module as submodule"
git push

On the next deployment, Skysize will automatically pull the submodule code.

Deployment Configuration

Custom Addons Path

Each branch can be configured with custom addons paths to organize your Odoo modules.

What it does:

  • Specifies additional directories where Odoo will look for modules
  • Allows separation of enterprise, community, and custom modules
  • Makes modules available for installation in your Odoo instance

How to configure:

  • Specify one or more directories, separated by commas
  • Paths are relative to your repository root
  • Common pattern: /enterprise-addons,/custom-addons,/extra-addons

Important notes:

  • Custom addons paths make modules available but don't automatically install them
  • You must manually install modules through the Odoo Apps interface
  • All modules in specified paths will appear in the Apps list
  • Update deployments will only update modules that are already installed

Example use cases:

  • Separating OCA modules from custom modules
  • Organizing modules by functionality or team
  • Including modules from Git submodules in different directories

Worker Configuration

Admins can configure the number of Odoo workers:

  • More workers: Better performance for high concurrency
  • Fewer workers: Lower resource usage and costs
  • Adjust based on your traffic patterns

Resource Allocation

Resources are allocated based on:

  • Branch type (production, staging, development)
  • Number of workers configured
  • Your billing plan
  • Committed discount level