> For the complete documentation index, see [llms.txt](https://docs.acecloud.ai/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.acecloud.ai/knowledge-base/deployment/how-to-create-a-shared-deployment-in-acecloud.md).

# How to Create a Shared Deployment in AceCloud?

### **Overview**

A **Shared Deployment** in AceCloud allows you to run containerized applications on **pooled infrastructure**, making it a cost-effective and scalable option for most workloads.

This guide provides step-by-step instructions to create a deployment using:

* **Public Image**
* **Private Image (AceCloud Registry)**

### **Prerequisites**

Before creating a deployment, ensure:

* You are logged in to the AceCloud portal
* A **Project** and **Region** are selected
* You have a valid **container image**

### **Step 1: Navigate to Deployment Creation**

1. From the left navigation menu, click **Deployment,** then **Overview**

![](/files/3f373221bb610bda8109be7404ea8ecbc224188f)

2. Click **Create Deployment**

![](/files/f74a11b830fe4e36b1d765617cd40f35b31afe23)

### **Step 2: Configure Deployment Details**

#### **2.1 Deployment Name**

* Enter a unique name for your deployment
* Example: my-app

#### **2.2 Deployment Type**

* Select **Shared**

### **Step 3: Select Image Type**

You must choose how your container image will be sourced.

#### **Option A: Public Image**

#### **3A.1 Select Public Image**

* Choose **Public Image**
* Images will be pulled from a public registry

#### **3A.2 Image URL / Tag**

* Enter the image URL

**Examples:**

nginx

myrepo/myapp

#### **3A.3 Command (Optional)**

* Enter a custom startup command to override the default container command if required.
* Leave blank to use the default container command

![](/files/2a12daa9cd199a4d46ab1912903f5bd4760fe881)

#### **Option B: Private Image**

#### **3B.1 Select Private Image**

* Choose **Private Image**
* Images will be pulled from the AceCloud registry

#### **3B.2 Select Registry Secret**

* Choose an existing **Registry Secret** from the dropdown

**OR**

* Click **Create new Registry secret**
* Provide required details (e.g., registry credentials)
* Save the secret and select it

This is required to authenticate and pull private images.

***Note:*** If registry credentials are regenerated using **Generate Credentials**, the previously saved credentials are invalidated. Ensure that you update the **Registry Secret** and restart the deployment from the **Actions (⋮)** menu.

#### **3B.3 Image URL / Tag**

* Enter the image name and tag

**Example:**

*myapp:latest*

*ubuntu:latest*

![](/files/42706e6eeadeb9090c5ce341afbf16e28e1d0bda)

***Note:***\_ The registry URL is automatically prefixed. Enter only the image in the format image:tag (e.g., ubuntu:latest).

*Only images from the AceCloud registry are supported. To use images from other private registries, migrate them to the AceCloud registry using ACR Source Registry + Replication.*

#### **3B.4 Command (Optional)**

* Override default container command if needed

### **Step 4: Configure Resources**

#### **4.1 CPU Request**

* Specify CPU allocation
* Example: 0.1, 0.5, 1

#### **4.2 Memory Request**

* Specify memory in MiB or GiB
* Example: 128, 512, 1024

#### **4.3 Replicas**

* Define the number of instances
* Example:
  * 1: Single instance
  * 2+: High availability

![](/files/9a9f208818d6adcca9a8563950db5ce5866b05fe)

#### **4.4 Autoscaling (Optional)**

Enable autoscaling to automatically adjust replicas based on usage.

If enabled, configure:

* **Minimum Replicas** → Minimum number of instances
* **Maximum Replicas** → Maximum scaling limit
* **CPU Target (%)** → CPU usage threshold
* **Memory Target (%)** → Memory usage threshold

Example:

* Min: 1
* Max: 12
* CPU Target: 50%
* Memory Target: 70%

### **Step 5: Configure Networking**

#### **5.1 External Access**

* Enable to make your deployment accessible externally

#### **5.2 Endpoint Access Type**

**🔸 Public**

* Accessible from anywhere on the internet

**🔸 Protected**

* Access is restricted to specific IP ranges

When **Protected** is selected:

* You must enter **Allowed IP CIDR(s)**

#### **5.3 Allowed IP CIDR(s)**

* Enter allowed IP ranges

**Example:**

192.168.1.0/24

10.0.0.0/16

![](/files/dfc8e584fa71fa088113d634e2e7ee5f55b24c4c)

#### **5.4 Ports Configuration**

Click **Add Port** and provide:

* **Name** → Logical name (e.g., http)
* **Protocol** → HTTP / HTTPS / TCP / UDP
* **Exposed Port** → Public-facing port
* **Container Port** → Port inside container

#### **Example Configuration:**

| **Field**      | **Value** |
| -------------- | --------- |
| Name           | http      |
| Protocol       | HTTP      |
| Exposed Port   | 80        |
| Container Port | 3000      |

### **Step 6: Configure Volumes (Optional)**

* Click **Add Volume**
* Attach persistent storage

![](/files/89f6c6ab5f3229bd3e23ab8785674bd3ed33aeab)

### **Step 7: Configure Environment Variables**

#### **7.1 Environment Secrets**

* Select existing secrets OR
* Click **Create new secret** to add sensitive data

#### **7.2 Environment Variables**

* Add key-value pairs

**Example:**

NODE\_ENV=production

PORT=3000

![](/files/126936a6521720df53924fe4a8bf0fff207ac78a)

### **Step 8: Review Deployment Summary**

On the right panel, verify:

* Deployment Type → Shared
* Image Type → Public / Private
* CPU, Memory, Replicas
* Autoscaling configuration
* External access
* Ports configured

![](/files/d3645ff8ab5ea6a9207a679039fd7e2467e4e180)

### **Step 9: Create Deployment**

* Click **Create Deployment**

![](/files/4c6965ed1cc61f078f31cdc4cbb49e79f566259c)

The platform will:

* Pull the container image
* Allocate resources
* Start container(s)
* Configure networking and access

### **Post Deployment**

After successful deployment:

* Access your application via the provided endpoint
* Monitor performance under **Insights**
* If the deployment remains in the **Provisioning** state for an extended period, open the deployment and review the container logs to identify any errors or issues preventing the deployment from becoming active.
* Shared deployments typically take **5–10 minutes** to become active. The provisioning time may vary depending on the size of the container image.
