> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doploy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up Developer Instance

> Create a development environment for building and testing

# Setting Up Developer Instance

Learn how to set up a developer instance for building and testing Odoo customizations.

## Overview

Developer instances are automatically built for any Git branch that isn't assigned to production or staging. Each developer instance:

* **Runs automatically** - Built automatically when you push commits to a branch
* **Runs full test suite** - Executes Odoo's complete test suite against your code
* **Runs on managed servers** - Uses doploy-managed infrastructure - no server needed from your project
* **Auto-expires** - Builds are dropped after 48 hours

**Automatic Test Builds**\
Once you enable Developer Branches & CI, any commit pushed to a new or existing branch automatically triggers a test build - no action needed from you.

## Prerequisites

Before creating developer instances, ensure you have:

* **Active subscription** - Developer instances require a Pro or Starter plan subscription
* **Developer Branches & CI add-on** - This add-on must be enabled in your project settings

## Python Package Requirements

**Important:** If your Odoo customizations require any Python packages (dependencies), **you must include them in a `requirements.txt` file in the root directory of your repository**. doploy automatically installs packages from this file during each build.

Without a `requirements.txt` file, your custom modules may fail to import required packages when the instance starts.

Example `requirements.txt`:

```
requests==2.31.0
pandas==2.0.3
python-dateutil==2.8.2
```

**Note:** The `requirements.txt` file must be in the root directory of your repository (same level as your Odoo modules directory).

## Enabling Developer Branches

If you haven't enabled developer branches yet:

1. Go to your project's [Settings](/managing-odoo/project-collaborators) page
2. Navigate to the **Billing** section
3. Enable the **Developer Branches & CI** add-on
4. Save your changes

Once enabled, you can create developer instances and benefit from automatic builds and testing.

## Step 1: Create Developer Instance

Navigate to your project's Deployments page and click the **"+"** button next to **Development**.

### Automatic Server Management

Developer instances run on doploy-managed servers automatically. You don't need to select a server—doploy handles infrastructure allocation for you.

### Select Branch

Select the Git branch with your development Odoo modules and customizations. This can be any branch that isn't already assigned to production or staging.

You can also create a new branch by clicking the **"Branch"** button, which lets you base it on an existing branch.

### Domain Name

Developer instances use auto-generated `{random}.doploy.site` domains. Domain names cannot be customized for developer instances.

### Database Name

A database name is auto-generated based on your branch name and a random suffix, ensuring uniqueness. You can modify this if needed, but it must be a valid PostgreSQL identifier (letters, numbers, underscores only).

### Admin Password

A secure random password is automatically generated for the Odoo admin user.

**Important:** Save this password immediately—it won't be shown again. You can change it later from within Odoo or [reset it via doploy](/managing-odoo/reset-admin-password).

## Step 2: Deploy

Review your configuration and click **"Deploy Instance"** to start the deployment process.

The instance will be built and deployed, typically completing within a few minutes. You can monitor progress in the deployment history tab.

## Automatic Builds and Testing

Once a developer instance is created, it will automatically rebuild whenever you push commits to its branch. Each build:

1. **Pulls latest code** - Gets the latest commits from your branch
2. **Runs full test suite** - Executes Odoo's complete test suite
3. **Shows test results** - Displays test results in the deployment history
4. **Sets up instance** - Creates an Odoo instance you can connect to and use, just like production or staging instances

## Viewing Test Results

To view test results for a developer instance:

1. Navigate to your developer instance in the Deployments page
2. Click on a build in the history tab
3. Click **View Test Results** to see detailed test output

Review test results to catch issues before merging to staging or production. The instance is available regardless of test results, allowing you to test manually and debug issues.

## Development Workflow

**Making Changes**

1. Create a new Git branch for your feature
2. Make your changes and commit them
3. Push to your repository
4. doploy automatically builds the instance, runs the test suite, and sets up your instance for testing

**Testing**

* Each build runs the full Odoo test suite
* Review test results in the deployment history
* Fix any failing tests before merging

**Promoting Changes**

1. Once tests pass and you've verified functionality
2. Merge your branch into staging for further testing
3. After staging validation, merge to production

## Troubleshooting

**Build Failures**\
If a build fails, check the test results to identify failing tests. Fix the issues and push again.

**Missing Python Packages**\
If your instance fails to start or modules fail to import, ensure you've added all required Python packages to a `requirements.txt` file in the root directory of your repository.

**Tests Not Running**\
Ensure your branch has the necessary test files and modules. Some Odoo versions may require specific test configurations.

**Instance Not Appearing**\
Verify that Developer Branches & CI add-on is enabled in your project settings.

## Next Steps

* [Set up staging instance](/managing-odoo/staging-instance) for pre-production testing
* [Set up production instance](/managing-odoo/production-instance) for your live environment
* [Connect via SSH](/managing-odoo/ssh-connection) for advanced debugging
* [Access database remotely](/managing-odoo/remote-database-access) for data inspection
