# Container Registries

The **Container Registries** tab allows you to configure and manage the registries that Nexus uses to pull modules/containers from. A container registry is a secure repository where container images are stored, versioned, and accessed when deploying modules to devices.

By connecting Nexus to one or more container registries, and provide crdentials to be able to read from the registry, you can greatly expand the functionality of your solution. This enables you to:

* **Deploy in-house developed functionality** such as custom services, machine learning models, or algorithms directly to devices.
* **Bundle registry containers into Applications** that are versioned and deployed consistently across multiple devices and environments.

{% hint style="info" %}
For publicly available containers (e.g., from [Docker Hub](https://hub.docker.com/)), you do **not** need to configure a registry here. Such containers can always be imported into Nexus using the **Nexus API** or the [Module Store](https://docs.tricloudnexus.io/management-portal/designer/modules/module-store).
{% endhint %}

In practice, this means you can go beyond the standard module library and bring your own innovation to Nexus - whether that’s deploying a predictive maintenance ML model, a proprietary data-processing engine, or a specialized integration service.

These settings require the [Administrator Role](https://docs.tricloudnexus.io/platform-architecture/security-architecture/user-roles-and-permissions) to access and modify.

***

## Key Configurations

<figure><img src="https://570593659-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYMGRODsc2QD3N3wmfwTl%2Fuploads%2FlnN0FboVPtkf8YXCZsXN%2Fimage.png?alt=media&#x26;token=0ae606ad-c05a-4c52-917a-b9e863870986" alt=""><figcaption><p>Container Registries Tab of Platform Settings</p></figcaption></figure>

The **Container Registries** tab in Platform Settings displays a list of all configured registries. For each registry, the following information is shown:

* **Name** - The friendly name of the Container Registry.
* **Address** – The endpoint of the registry (e.g., `https://company.azurecr.io`).
* **Type** – The type of registry, e.g., Azure Container Registry. Currently only Azure Container Registry is supported.
* **Default** – Indicates which registry is the platform default. The default registry cannot be deleted.

Toolbar actions at the top include:

* **Add** – Add a new container registry.
* **Edit** – Update an existing registry’s configuration.
* **Delete** – Remove a registry (except the default).

***

### Adding a Container Registry

<figure><img src="https://570593659-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYMGRODsc2QD3N3wmfwTl%2Fuploads%2FAsUnsFtAFsIJZC4xf3GG%2Fimage.png?alt=media&#x26;token=4a0c4166-0fcc-4daa-9c8a-1f6712edf438" alt=""><figcaption><p>Add Container Registry Window</p></figcaption></figure>

When clicking **Add**, a new dialog will appear where you can configure the registry connection:

* **Registry Name** – A descriptive name for the registry.
* **Type** – The type of registry is Azure Container Registry until other registries are supported.
* **Registry Address** – The URL endpoint of the registry.
* **Tenant ID** – The Azure Active Directory tenant ID (for Azure Container Registry).
* **Client ID** – The application/client ID with permissions to access the registry and perform read operations.
* **Client Secret** – The secret/password for the client ID.

After filling in the fields, click **Validate** to confirm that Nexus can connect to the registry. Validation must succeed before you can save the registry. Once validated, click **Save** to add the registry.

***

### Editing a Container Registry

To edit an existing registry, select it from the list and click **Edit**. Update the fields as needed, validate the configuration, and **Save** the changes.

***

### Deleting a Container Registry

* The **default platform registry** cannot be deleted, but other registries can.

{% hint style="warning" %}
**NOTE:** Before deleting any Container Registry, ensure all module versions from that registry have been removed from the Module Store, since no Modules from the registry would be deployable to devices afterwards.

Also make sure that modules from the Registry is not used in any Application.
{% endhint %}

***

### Best Practices

* Always validate registry connections before saving.
* Use separate registries for production, testing, and experimental modules to avoid conflicts.
* Assign a clear and descriptive name to each registry so users can easily identify their purpose.
