# Deploy at scale

If your organization centrally manages JetBrains IDEs using [JetBrains IDE Services](https://www.jetbrains.com/ide-services/), you can deploy SonarQube for IntelliJ to your entire developer team without requiring individual installs. This guide covers the two main approaches.

## Prerequisites <a href="#prerequisites" id="prerequisites"></a>

Before you begin, make sure you have:

* An active [JetBrains IDE Services](https://www.jetbrains.com/ide-services/) subscription (Cloud or self-hosted)
* Administrator access to your organization's IDE Services instance

## Choosing a deployment approach <a href="#choosing-a-deployment-approach" id="choosing-a-deployment-approach"></a>

| Approach                                                                        | Best when:                                                                                                           |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| [Deploy from the JetBrains Marketplace](#deploy-from-the-jetbrains-marketplace) | Your developers have internet access and you want them to receive updates automatically                              |
| [Deploy from a private repository](#deploy-from-a-private-repository)           | You need version control, operate in an air-gapped environment, or want to qualify a specific version before rollout |

## Deploy from the JetBrains Marketplace <a href="#deploy-from-the-jetbrains-marketplace" id="deploy-from-the-jetbrains-marketplace"></a>

This approach uses IDE Services plugin rules to make SonarQube for IntelliJ *available or required*, across your organization directly from the JetBrains Marketplace.

1. In the IDE Services Web UI, open your organization's profile.
2. Navigate to the **Plugins** section and select **Manage rules**.
3. Add a new rule targeting the SonarQube for IntelliJ plugin, either by selecting the individual plugin or by vendor.
4. Set the rule type to **Allow** to make the plugin available to developers.
5. Optionally, apply IDE version, OS, or architecture filters to limit which machines receive the rule.

{% hint style="info" %}
If your profile uses a **denylist strategy** (blocking all plugins by default), you must add an explicit **Allow** rule for SonarQube for IntelliJ. More specific rules override broader ones, so an **Allow** rule scoped to this plugin takes precedence over a global block. See the [JetBrains documentation on managing available plugins](https://www.jetbrains.com/help/ide-services-cloud/manage-available-plugins.html) for full details on rule types and precedence.
{% endhint %}

## Deploy from a private repository <a href="#deploy-from-a-private-repository" id="deploy-from-a-private-repository"></a>

Use this approach to host a specific version of SonarQube for IntelliJ in your organization's private plugin repository within IDE Services. This is the right choice for air-gapped environments or when you want to qualify a release before it reaches your developers.

### Step 1: Download the plugin ZIP <a href="#step-1-download-the-plugin-zip" id="step-1-download-the-plugin-zip"></a>

Download the SonarQube for IntelliJ ZIP file for your target release from the [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/7973-sonarqube-for-ide/versions). Check the compatibility matrix on the Marketplace to confirm it supports your target IDE versions.

### Step 2: Upload to your private repository <a href="#step-2-upload-to-your-private-repository" id="step-2-upload-to-your-private-repository"></a>

1. In the IDE Services Web UI, go to the **Plugins** page.
2. Select **Upload plugin**.
3. Select a distribution channel. **Stable** is recommended for production rollouts.
4. Optionally, set an **expiration date** to automatically remove the version after a set period, which is useful for enforcing upgrades.
5. Drag and drop the ZIP file into the upload area, or select it from your file system.

{% hint style="info" %}
IDE Services only accepts plugins as ZIP packages. Do not extract the archive before uploading.
{% endhint %}

For teams using a CI/CD pipeline, IDE Services also supports automated uploads over HTTP using an automation token. See the [JetBrains documentation on managing the plugin repository](https://www.jetbrains.com/help/ide-services-cloud/manage-plugin-repository.html#upload_plugin_manually) documentation for details on scripting uploads with cURL.

### Step 3: Make the plugin available to developers <a href="#step-3-make-the-plugin-available-to-developers" id="step-3-make-the-plugin-available-to-developers"></a>

Once the plugin is in your repository, configure a rule to roll it out:

1. In IDE Services, open your organization's profile.
2. Navigate to **Plugins** > **Manage rules**.
3. Add a rule targeting the **Corporate repository** scope, or scope it to the specific SonarQube for IntelliJ plugin within your repository.
4. Set the rule type to **Allow**.
5. Apply IDE filters if needed to target specific machines or IDE versions.

Developers will see SonarQube for IntelliJ available for installation from your internal repository the next time their IDE syncs with IDE Services.

## Next steps <a href="#next-steps" id="next-steps"></a>

Once SonarQube for IntelliJ is deployed, consider setting up [connected-mode](https://docs.sonarsource.com/sonarqube-for-intellij/connect-your-ide/connected-mode "mention") to synchronize your teams' analysis settings with your SonarQube Server or SonarQube Cloud instance, ensuring everyone works to the same quality standards.
