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

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Create a Datastore

> Configure a datastore in Edge Infrastructure Services to provide nodes with access to your application images and files in an external storage service.

## Introduction

This procedure explains how to create a datastore object in Edge Infrastructure Services. A datastore defines the connection details and credentials for an external storage service (such as a cloud storage bucket, SFTP server, or container registry) that EVE-OS (Edge Virtualization Engine) uses to download application images and files onto nodes.

Each datastore name must be unique within an enterprise and cannot be changed after creation.

This article covers creating datastores for your own persistent storage. If you are looking for ZEDEDA-hosted EVE-OS base images, those are managed under **Infrastructure > Operations > Release Manager** in Edge Infrastructure Services.

Edge Infrastructure Services uses two different creation flows depending on the storage provider:

* **Cloud-assisted flow (Amazon S3, Azure Blob)**: A five-step wizard that authenticates with your cloud account, discovers available buckets or containers, then prompts you for the datastore name and scope.
* **Manual flow (SFTP, HTTP, HTTPS, OCI / Docker)**: A three-step wizard where you enter the endpoint, credentials, and datastore name directly.

## Prerequisites

* You have the SysManager or SysAdmin role in your enterprise. See [Manage Roles](https://zededa.mintlify.site/new-ui/infrastructure-services/administration/manage-roles.md).
* A node onboarded to Edge Infrastructure Services.
* The nodes in your enterprise must have network connectivity to the storage service you are configuring.

## Amazon S3

Amazon S3 uses a five-step cloud-assisted wizard: Provider, Details, Discover, General, Review.

1. In the sidebar, click **Infrastructure > Fleet > Datastores**.
2. Click the **Add** button (floating button in the lower right of the page).
3. Select **Cloud Storage**, then select **Amazon S3**.

### Enter AWS discovery credentials

In the **Details** step, enter the credentials EVE-OS will use to discover your S3 buckets:

1. In the **Access Key ID** field, enter your AWS access key ID.
2. In the **Secret Access Key** field, enter your AWS secret access key.
3. In the **Session Token** field, enter a temporary STS session token if your credentials require one. This field is optional.
4. In the **Region** field, enter the AWS region where your bucket is located (for example, `us-east-1`).
5. In the **Bucket Name** field, enter a known bucket name if your credentials do not have permission to list all buckets. This field is optional.
6. Click **Next**.

### Select a bucket

In the **Discover** step:

1. Click **Load Buckets** to retrieve the list of S3 buckets accessible with your credentials.
2. Select the bucket you want to use.
3. Optionally, browse the bucket contents and click a folder to set a path prefix that limits EVE-OS access to a subdirectory within the bucket.
4. Click **Next**.

### Configure general settings

In the **General** step:

1. In the **Name** field, enter a unique identifier for the datastore. The name cannot contain spaces and cannot be changed after creation.
2. In the **Title** field, enter a human-readable display label.
3. In the **Description** field, enter an optional description.
4. Under **Project Scope**, select the projects this datastore belongs to. Only nodes in the selected projects can access this datastore. Leave empty to make the datastore available to all projects.
5. Click **Next**.

### Review and save

Review the summary and click **Save Datastore**.

## Azure Blob

Azure Blob uses a five-step cloud-assisted wizard with Microsoft SSO: Provider, Details, Discover, General, Review.

1. In the sidebar, click **Infrastructure > Fleet > Datastores**.
2. Click the **Add** button (floating button in the lower right of the page).
3. Select **Cloud Storage**, then select **Azure Blob**. Click **Next**.

### Sign in with Microsoft

In the **Details** step:

1. Click **Sign in with Microsoft** and complete the Microsoft authentication flow in the browser popup.
2. After authentication, your Microsoft account appears in the list. Select it to confirm the connection.
3. Click **Next**. Edge Infrastructure Services uses the authenticated session to discover your Azure storage accounts.

### Select a storage account and container

In the **Discover** step:

1. Select the storage account that contains the container you want to use.
2. Select the container.
3. Click **Next**.

### Configure general settings

In the **General** step:

1. In the **Name** field, enter a unique identifier for the datastore. The name cannot contain spaces and cannot be changed after creation.
2. In the **Title** field, enter a human-readable display label.
3. In the **Description** field, enter an optional description.
4. Under **Project Scope**, select the projects this datastore belongs to. Leave empty to make the datastore available to all projects.
5. Click **Next**.

### Review and save

Review the summary and click **Save Datastore**.

## SFTP, HTTP, and HTTPS

On-premises storage providers use a three-step manual wizard: Provider, Details, Review.

1. In the sidebar, click **Infrastructure > Fleet > Datastores**.
2. Click the **Add** button (floating button in the lower right of the page).
3. Select **On-Prem / Local**, then select your provider (**SFTP**, **HTTP**, or **HTTPS**).

### Configure general settings

After selecting a provider, complete the general settings on the same step:

1. In the **Name** field, enter a unique identifier for the datastore. The name cannot contain spaces and cannot be changed after creation.
2. In the **Title** field, enter a human-readable display label.
3. In the **Description** field, enter an optional description.
4. Under **Project Scope**, select the projects this datastore belongs to. Leave empty to make the datastore available to all projects.
5. Click **Next**.

### Configure connection details

In the **Details** step, enter the connection information based on your provider:

**SFTP:**

1. In the **FQDN** field, enter the hostname and port in the format `hostname:port` (for example, `192.168.25.101:22`).
2. In the **Path** field, enter the path to the directory where images are stored.
3. In the **Username** and **Password** fields, enter the SFTP server credentials.
4. Click **Next**.

**HTTP:**

1. In the **FQDN** field, enter the hostname of your HTTP file server.
2. In the **Path** field, enter the path to the directory where images are stored.
3. Click **Next**.

**HTTPS:**

1. In the **FQDN** field, enter the hostname of your HTTPS file server.
2. In the **Path** field, enter the path to the directory where images are stored.
3. Optionally, upload one or more CA certificates for server verification.
4. Click **Next**.

### Review and save

Review the summary and click **Save Datastore**.

## Container Registry (OCI / Docker)

Container registries use a three-step manual wizard: General, Details, Review.

1. In the sidebar, click **Infrastructure > Fleet > Datastores**.
2. Click the **Add** button (floating button in the lower right of the page).
3. Select **Container Registries**. The **OCI / Docker** provider is selected automatically.

### Configure general settings

1. In the **Name** field, enter a unique identifier for the datastore. The name cannot contain spaces and cannot be changed after creation.
2. In the **Title** field, enter a human-readable display label.
3. In the **Description** field, enter an optional description.
4. Under **Project Scope**, select the projects this datastore belongs to. Leave empty to make the datastore available to all projects.
5. Click **Next**.

### Configure connection details

In the **Details** step:

The following table shows the FQDN format for common container registries:

| Registry | FQDN | Authentication |
| - | - | - |
| Docker Hub | `docker.io` | Docker Hub username and password |
| Google Container Registry | `docker://gcr.io` | Use `_token` as the username, and supply an access token from the GCP Console |
| Azure Container Registry | `unique.azurecr.io` (where `unique` is your ACR registry name) | Use `_token` as the username, and supply an Azure AD or service principal password |
| GitHub Container Registry | `docker://ghcr.io` | GitHub username and a Personal Access Token with `read:packages` scope |
| Private registry | Your registry FQDN | Registry-specific username and password |

1. In the **FQDN** field, enter the registry address using the format from the preceding table.
2. In the **Username** field, enter the username for your registry.
3. In the **Token / Password** field, enter the password or access token.
4. Click **Next**.

### Review and save

Review the summary and click **Save Datastore**.

## Verify the Configuration

After creating the datastore, confirm it appears in the **Datastores** list under **Infrastructure > Fleet** in the sidebar. When you subsequently create an edge application image that references this datastore, the node will download the image from the configured storage location.

## Next Steps

> [card] [Datastores Overview](https://zededa.mintlify.site/new-ui/infrastructure-services/datastores.md)
>
> An overview of how datastores work in Edge Infrastructure Services.

> [card] [Manage an App Image](https://zededa.mintlify.site/new-ui/infrastructure-services/build-and-library/manage-an-app-image.md)
>
> Create an edge application image that references this datastore, then deploy the application to nodes.
