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

# Add Container

> Add a container image from Docker Hub, Depot, Nvidia NGC, or Quay to Simplismart

Shakti Studio supports containers from four registries: **Docker Hub**, **Depot**, **Nvidia NGC** (for NIM containers), and **Quay**. This page covers setting up credentials and adding your image.

Once your image is added, see [Creating a Deployment](/model-suite/deployments/creating-a-deployment) to configure and launch the deployment.

## Prerequisites

* A container image hosted on Docker Hub, Depot, Nvidia NGC, or Quay.
* For **private images**: credentials configured in Shakti Studio (see [Setting Up Registry Credentials](#setting-up-registry-credentials)).

<Note>
  Public Docker Hub and Quay images do not require credentials. You can skip the credentials section and go straight to [Adding Your Image](#adding-your-image).
</Note>

## Setting Up Registry Credentials

Skip this section if you are using a public image.

<Tabs>
  <Tab title="Docker Hub">
    <Steps>
      <Step title="Open Secrets">
        Navigate to **Integrations → [Secrets](https://shaktistudio.ai/integrations/secrets)** in your Shakti Studio dashboard.
      </Step>

      <Step title="Create a Docker Hub secret">
        Click **Create Secret** and fill in the following fields:

        * **Secret Name**: A descriptive name for this secret.
        * **Secret Type**: Select **Docker Hub** from the dropdown.
        * **Username**: Your Docker Hub username.
        * **Password**: Your Docker Hub access token (create one at [hub.docker.com/settings/security](https://hub.docker.com/settings/security)).
      </Step>

      <Step title="Save the secret">
        Click **Create**. The secret appears in your secrets list and can be selected when adding a private image.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Depot">
    <Steps>
      <Step title="Open Secrets">
        Navigate to **Integrations → [Secrets](https://shaktistudio.ai/integrations/secrets)** in your Shakti Studio dashboard.
      </Step>

      <Step title="Create a Depot secret">
        Click **Create Secret** and fill in the following fields:

        * **Secret Name**: A descriptive name for this secret.
        * **Secret Type**: Select **Depot** from the dropdown.
        * **Username**: Enter `x-token` (always the username for Depot authentication).
        * **Token**: Your Depot personal access token (generate one from your [Depot project settings](https://depot.dev)).
      </Step>

      <Step title="Save the secret">
        Click **Create**. The secret appears in your secrets list.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Nvidia NGC">
    <Steps>
      <Step title="Open Secrets">
        Navigate to **Integrations → [Secrets](https://shaktistudio.ai/integrations/secrets)** in your Shakti Studio dashboard.
      </Step>

      <Step title="Create an NGC secret">
        Click **Create Secret** and fill in the following fields:

        * **Secret Name**: A descriptive name for this secret.
        * **Secret Type**: Select **Nvidia Docker Secret** from the dropdown.
        * **API Key**: Your NVIDIA NGC API key (generate from [ngc.nvidia.com](https://ngc.nvidia.com)).

                  <img src="https://mintlify.s3.us-west-1.amazonaws.com/simplismart-2/images/model-suite/deployments/deploy-docker-container/nim-secret.png" alt="Nvidia NGC secret configuration" />
      </Step>

      <Step title="Save the secret">
        Click **Create**. The secret appears in your secrets list and can be selected when adding an NGC image.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Quay">
    Only **public** Quay images are currently supported. No credentials are required. Skip to [Adding Your Image](#adding-your-image).
  </Tab>
</Tabs>

## Adding Your Image

<Steps>
  <Step title="Open My Models">
    Go to **[My Models](https://shaktistudio.ai/my-models)** and click **Bring Your Own Container**.
  </Step>

  <Step title="Configure the model">
    Fill in the fields for your registry. **Model Name** and **GPU Per Container** apply to all registry types.

    <Tabs>
      <Tab title="Docker Hub">
        <img src="https://mintlify.s3.us-west-1.amazonaws.com/simplismart-2/images/model-suite/deployments/deploy-docker-container/1-docker-container-basic-details.png" alt="Add model — Docker Hub" />

        * **Model Name**: A descriptive name for your application.
        * **Platform Type**: Select **DockerHub** from the dropdown.
        * **Registry Path**: Your Docker Hub registry path (e.g. `myorg/myimage`).
        * **Container Image Tag**: The image version or tag (e.g. `latest`).
        * **GPU Per Container**: Number of GPUs per container. Default is `1`; maximum is `8`.
        * **Registry Credentials**: Select the Docker Hub secret you created. Leave blank for public images.
      </Tab>

      <Tab title="Depot">
        First, locate your registry path in Depot:

        1. Go to your **Depot** dashboard and navigate to **Registry**.
        2. Find your image in the **Image Reference** column. It will look like:

        ```
        registry.depot.dev/YOUR-ORG-ID:CONTAINER-IMAGE-TAG
        ```

        Split the reference into two parts:

        * **Registry Path**: everything before the `:` (e.g. `registry.depot.dev/YOUR-ORG-ID`)
        * **Container Image Tag**: everything after the `:` (e.g. `CONTAINER-IMAGE-TAG`)

                  <img src="https://mintlify.s3.us-west-1.amazonaws.com/simplismart-2/images/model-suite/deployments/deploy-docker-container/2-fetch-image-id.png" alt="Depot image reference in the Depot dashboard" />

        Then fill in the model fields:

        * **Model Name**: A descriptive name for your application.
        * **Platform Type**: Select **Depot** from the dropdown.
        * **Registry Path**: The path copied from Depot.
        * **Container Image Tag**: The tag copied from Depot.
        * **GPU Per Container**: Number of GPUs per container. Default is `1`; maximum is `8`.
        * **Registry Credentials**: Select the Depot secret you created.
      </Tab>

      <Tab title="Nvidia NGC">
        * **Model Name**: A descriptive name for your application.
        * **Platform Type**: Select **NGC** from the dropdown.
        * **Registry Path**: The NGC image path (e.g. `nvcr.io/nvidia/nim/meta/llama-3.1-8b-instruct`).
        * **Container Image Tag**: The image tag (e.g. `latest`).
        * **GPU Per Container**: Number of GPUs per container. Default is `1`; maximum is `8`.
        * **Registry Credentials**: Select the Nvidia NGC secret you created.
      </Tab>

      <Tab title="Quay">
        * **Model Name**: A descriptive name for your application.
        * **Platform Type**: Select **Quay** from the dropdown.
        * **Registry Path**: The Quay image path (e.g. `quay.io/myorg/myimage`).
        * **Container Image Tag**: The image tag (e.g. `latest`).
        * **GPU Per Container**: Number of GPUs per container. Default is `1`; maximum is `8`.
        * **Registry Credentials**: Leave blank — only public Quay images are supported.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Configure the container">
    Expand **Container Configuration** to define how the platform interacts with your container. These settings carry over to the deployment step and can be overridden there.

    <img src="https://mintlify.s3.us-west-1.amazonaws.com/simplismart-2/images/model-suite/deployments/deploy-docker-container/3-byoc-container-config.png" alt="Container configuration panel" />

    Click **Add HTTP**, **Add gRPC**, or **Add Monitoring** to enable the respective services.

    * **HTTP Service** (Required): The port your server listens on (e.g. `8000`).
      * **Public Access**: Enable to make the endpoint reachable externally. When disabled, the service is accessible only within the cluster.

    * **gRPC Service**: Enable if your application uses gRPC. Must use a different port than HTTP.

    * **Monitoring Service**: Enable for enhanced monitoring and observability.

    * **Health Check Configuration**: If any field is filled, all fields are required.
      * **Health Check Path**: e.g. `/health`
      * **Port**: Must match your HTTP service port.
      * **Initial Delay**: Time in seconds before the first health check.
      * **Period**: Interval in seconds between checks.
      * **Timeout**: Maximum seconds to wait for a response.

    * **Environment Variables**: Runtime key-value pairs injected into your container.

          <img src="https://mintlify.s3.us-west-1.amazonaws.com/simplismart-2/images/model-suite/deployments/deploy-docker-container/4-byoc-container-config-1.png" alt="Container configuration — command override and model endpoint" />

    * **Command Override**: (Optional) Custom command to replace the container's default startup command.

    * **Model Endpoint**: (Optional) Inference path used for observability (e.g. `/v1/chat/completions`).
  </Step>

  <Step title="Add the model">
    Click **Add Model**. For Docker Hub, the image path is verified immediately. For other registries, the image is confirmed when the deployment starts.
  </Step>
</Steps>

Once your image is added, continue to [Creating a Deployment](/model-suite/deployments/creating-a-deployment) to configure and launch the deployment.
