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
basemodule 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:
- Navigate to your deployment in the Skysize dashboard
- Click on the "Details" link for the specific deployment
- 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
- Push code to a new branch in your repository
- Skysize detects the new branch
- Choose "Create New" deployment action
- Wait for build and deployment to complete
- Access your application at the assigned URL
Updating an Existing Deployment
- Push changes to an existing branch
- Skysize detects the changes
- Choose "Update" deployment action
- Existing deployment updates with new code
- 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:
- Navigate to your deployment in the Skysize dashboard
- Click on the "Manage deployment" menu
- Select "Retry Deployment" or "Rebuild" option
- Wait for the new deployment to complete
- 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:
- Navigate to your deployment in the Skysize dashboard
- Click on the "Manage deployment" menu (three dots)
- Select "Delete Deployment"
- Review the confirmation dialog (production deployments show additional warnings)
- 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:
- Check the deployment logs in Skysize dashboard
- Verify your code compiles successfully locally
- Ensure all dependencies are specified correctly
- Check for Odoo module errors
- Contact support if issues persist
Application Not Accessible
If you can't access your deployed application:
- Verify deployment status is "Running"
- Check the URL is correct
- Ensure DNS has propagated (for custom domains)
- Check firewall settings
- 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:
- Skysize clones your repository with the
--recurse-submodulesflag - All public Git submodules are automatically initialized and updated
- Submodule code is available in your deployment alongside your main code
Requirements
- Public repositories only: Submodules must be publicly accessible
- Standard Git submodules: Use
.gitmodulesfile 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