> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/miscellaneous-integrations/private-registries/nexus-repository.md).

# Sonatype Nexus Repository

Route your registry traffic through Aikido's registry proxy by configuring Nexus Repository as an intermediary. Nexus pulls packages from Aikido instead of the public registries, so every package your team installs is checked for malware, age restrictions, and known vulnerabilities.

{% stepper %}
{% step %}

### Get your Aikido proxy URL

Go to [Settings > Registry Proxy](https://app.aikido.dev/issues/fix/extended-lifecycle-support/setup-instructions), select your ecosystem and copy the upstream proxy URL

<figure><img src="/files/CQs3cGmBqB46HhVonCW4" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Create a Proxy Repository in Nexus

1. In Nexus, go to **Settings > Repository > Repositories**.
2. Click **Create Repository** and select your ecosystem.
3. Give the repository a name, for example `aikido`.
4. Under **Remote Storage**, paste your Aikido proxy URL from step 1.
5. Save the repository.

{% hint style="warning" %}
Do not change the Remote Storage URL after the repository is created. Doing so can cause 404 errors as Nexus tries to reconcile cached metadata. If you need a different upstream URL, create a new proxy repository instead.
{% endhint %}
{% endstep %}

{% step %}

### (Optional) Create a Group Repository

If you also have internal packages in a hosted Nexus repository, create a Group Repository to expose both under a single URL:

1. Go to **Settings > Repository > Repositories > Create Repository** and select **aikido**
2. Add your hosted repository and the proxy repository as members.
3. Point your package manager at the group repository URL instead.

{% hint style="info" %}
Group repositories are read-only in Nexus Community Edition. To publish packages, always push directly to the hosted repository.
{% endhint %}
{% endstep %}

{% step %}

### Configure Developer Machines to use Nexus

Point each developer's package manager at the Nexus repository. See Sonatype's documentation for the exact steps, including authentication setup:

{% tabs %}
{% tab title="npm" %}
[Configuring npm](https://help.sonatype.com/en/configuring-npm.html)
{% endtab %}

{% tab title="PyPI" %}
[Configuring PyPI](https://help.sonatype.com/en/configure-pypi-with-nexus.html)
{% endtab %}

{% tab title="Maven" %}
[Configuring Maven](https://help.sonatype.com/en/maven-repositories.html)
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### (Optional) Block the public registry with Device Protection

Once Nexus is in place, developers can still bypass it by pointing their package manager directly at the public registry. Deploy Aikido Device Protection to enforce that all traffic goes through your private registry.

{% content-ref url="/pages/sa7N9YXthBxZbm6WmKBq" %}
[Block Public Package Registries](/aikido-device-protection/using-aikido-endpoint/block-public-package-registries.md)
{% endcontent-ref %}
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.aikido.dev/miscellaneous-integrations/private-registries/nexus-repository.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
