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

# API Self Hosted Deployment on Azure

> This article is intended for users who wish to deploy a Draftable API Self Hosted container via Microsoft Azure. It is important to understand that the current only supported method of Self Hosted deployment via Azure is to host a Linux virtual machine, and then to configure that virtual machine to run the container.

<Warning>
  **This documentation is for API Self-Hosted Version 2 (Legacy)**

  Version 2 is a legacy deployment model. All new customers **must** use Version 3, which features a modern multi-container architecture with improved security and performance.

  👉 [Get started with API Self-Hosted v3](/hc/en-us/articles/51133475373465-API-Self-Hosted-v3-Quick-Start-Guide)
</Warning>

<Note>
  The supported method for deploying Draftable API Self-Hosted on Azure is to host a Linux virtual machine and run the containers within it using Docker Compose, as described in this guide.

  While it is technically possible to deploy on Azure AKS using an NFS shared volume (e.g. Azure NetApp Files) with `FILE_STORAGE_TYPE=local`, this is **not officially supported** by Draftable due to performance limitations identified in our testing. See [`FILE_STORAGE_TYPE`](/hc/en-us/articles/51141426113049-Draftable-API-Self-Hosted-v3-Docker-Compose-Guide#file_storage_type) for details.
</Note>

## Stage 1: Configuring the Azure environment

Many components need to be ready before configuring the virtual machine and setting up the container. You may already have some of these configured, so skip any steps that are already complete.

### Resource group

Ensure you have a resource group configured so that Azure resources can be allocated to it as they are created.

<Steps>
  <Step>
    Click **Create** to create a resource group, give it a name, and complete the setup.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-12.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=fe76e4d1ff945990dc4ca6ee35d23602" alt="" width="984" height="272" data-path="images/draftable-api-self-hosted/image-12.png" />
    </Frame>
  </Step>
</Steps>

### Managed identity

You will need a managed identity for the Key Vault process.

<Steps>
  <Step>
    Click **Create** to create the managed identity, give it a name, and complete the setup.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-13.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=b98985799deea98fb300fbd1e9b795c1" alt="" width="877" height="171" data-path="images/draftable-api-self-hosted/image-13.png" />
    </Frame>
  </Step>
</Steps>

### Key Vault

Create a Key Vault to store **keys**, **secrets**, **access policies**, and **certificates**.

<Steps>
  <Step>
    Click **Create** to create the Key Vault, give it a name, and complete the setup.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-14.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=8dbf3cc9dfd4092d2548ebc2f8627011" alt="" width="883" height="193" data-path="images/draftable-api-self-hosted/image-14.png" />
    </Frame>
  </Step>
</Steps>

Once the Key Vault is created, you need to configure the following components within it. These are required for the virtual machine gateway provisioning.

#### Keys

<Steps>
  <Step>
    Select **Generate/Import** and give the key a name. No additional setup is required.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-15.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=fe461b8d4763658450a8be5c2b80a0df" alt="" width="1040" height="292" data-path="images/draftable-api-self-hosted/image-15.png" />
    </Frame>
  </Step>
</Steps>

#### Secrets

<Steps>
  <Step>
    Select **Generate/Import** and give the secret a name. No additional setup is required.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-16.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=ef09cfd5f9727cfce208b71c8485dcbf" alt="" width="704" height="159" data-path="images/draftable-api-self-hosted/image-16.png" />
    </Frame>
  </Step>
</Steps>

#### Access policies

<Steps>
  <Step>
    Select **Create** to begin creating an access policy.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-17.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=6e20274277b679e3b74f15f67911ec10" alt="" width="1204" height="289" data-path="images/draftable-api-self-hosted/image-17.png" />
    </Frame>
  </Step>

  <Step>
    Assign permissions to the policy. The **Key**, **Secret**, and **Certificate** management permissions are all required. You can select all permissions depending on your use case.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-18.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=060c5f838f713c8f0737ab07f4dc1a24" alt="" width="785" height="1242" data-path="images/draftable-api-self-hosted/image-18.png" />
    </Frame>
  </Step>

  <Step>
    Assign the managed identity you created earlier as the principal. Search for the identity name and select it.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-19.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=94b98cf182f9ae9b42c8b11fd6632492" alt="" width="865" height="341" data-path="images/draftable-api-self-hosted/image-19.png" />
    </Frame>
  </Step>

  <Step>
    Skip the optional Application step and proceed to create the access policy.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-20.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=b15ded00303f591349a9543b3da22cbe" alt="" width="587" height="1186" data-path="images/draftable-api-self-hosted/image-20.png" />
    </Frame>
  </Step>

  <Step>
    Review the information, and if correct, select **Create**.
  </Step>
</Steps>

#### Certificates

<Steps>
  <Step>
    Select **Generate/Import** to begin adding your certificate.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-21.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=c192ad67bc7675861ee37e86c4969037" alt="" width="1368" height="215" data-path="images/draftable-api-self-hosted/image-21.png" />
    </Frame>
  </Step>

  <Step>
    You have two methods for certificate setup:

    **Generate a certificate:** Fill in the required fields, noting the **Subject** field which is important for configuring a CN.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-22.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=7885140fc316b995573fcc22604a061f" alt="" width="1806" height="477" data-path="images/draftable-api-self-hosted/image-22.png" />
    </Frame>

    **Import a certificate:** Select the **Import** method, upload the certificate file with the password. The certificate file must be in **PKCS** format.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-23.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=53f8e8c534df4e1fb6c47cae21727d64" alt="" width="1884" height="220" data-path="images/draftable-api-self-hosted/image-23.png" />
    </Frame>
  </Step>
</Steps>

Once the certificate has been added, you can move on to setting up the virtual machine.

## Stage 2: Setting up the virtual machine

<Steps>
  <Step>
    Select **Create** in the Virtual Machine section of Azure to begin.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-24.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=d5c1cf62fdeba1ae185926b2b9b5fad9" alt="" width="927" height="743" data-path="images/draftable-api-self-hosted/image-24.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-25.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=f118a3cda30199d41ba2ea0b0c1a3f53" alt="" width="814" height="729" data-path="images/draftable-api-self-hosted/image-25.png" />
    </Frame>
  </Step>

  <Step>
    In the **Basics** tab, configure the following:

    * **Resource group** — Select your existing resource group or the one created earlier
    * **Image** — We recommend Ubuntu
    * **Name** — Provide a name for the virtual machine
    * **Region** — Set the region where the machine will be hosted

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-26.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=490ce86ec1a263a397fe99c0b57d4585" alt="" width="819" height="453" data-path="images/draftable-api-self-hosted/image-26.png" />
    </Frame>
  </Step>

  <Step>
    For the **Size**, ensure you select at least **Standard\_D2s\_V3**. Choosing a smaller size will cause the instance to fail due to lack of resources. The **Username** and **Key pair** name should auto-fill, but provide names for these if needed.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-27.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=8fed87361af63a4af9cd08a8b9cfc7a6" alt="" width="766" height="279" data-path="images/draftable-api-self-hosted/image-27.png" />
    </Frame>
  </Step>

  <Step>
    Configure your **ports**. This depends on your use case, but a typical setup includes:

    * **Port 80** (HTTP)
    * **Port 443** (HTTPS)
    * **Port 22** (SSH)

    Then move on to the **Disks** section.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-28.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=d6b36c00cb9ec4f73c0f49056f457a99" alt="" width="766" height="778" data-path="images/draftable-api-self-hosted/image-28.png" />
    </Frame>
  </Step>

  <Step>
    Configure the **OS disk size** and **disk type**:

    * **Disk size** — At least **30 GiB** (scale to your use case)
    * **Disk type** — We recommend **Standard SSD**

    Then move on to **Networking**.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-29.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=c980f4187325b5dfd2ed112b44b734a0" alt="" width="782" height="711" data-path="images/draftable-api-self-hosted/image-29.png" />
    </Frame>
  </Step>

  <Step>
    We recommend creating new resources for the **Virtual network**, **Subnet**, and **Public IP**, unless you wish to use existing resources.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-30.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=9dc5c123ac3690ae061bda58d6fb06ff" alt="" width="803" height="312" data-path="images/draftable-api-self-hosted/image-30.png" />
    </Frame>
  </Step>

  <Step>
    For load balancing, select **Application Gateway** — this will act as a load balancer and allow you to use the custom certificates configured earlier. Select **Application Gateway**, then choose **Create an application gateway**.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-31.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=d6747a1479b87f7f905ecbda2423c1c0" alt="" width="581" height="857" data-path="images/draftable-api-self-hosted/image-31.png" />
    </Frame>

    In the gateway configuration panel:

    * Provide a **name** for the gateway
    * Set the **port** to **443**
    * Set the **Protocol** to **HTTPS**
    * For **Choose a certificate**, select **Choose a certificate from Key Vault**
    * Select the relevant **Managed identity**, **Key vault**, and **Certificate**
    * Click **Create**

    Then move on to the **Management** section.
  </Step>

  <Step>
    There is no required configuration in the **Management**, **Advanced**, or **Tags** tabs (default settings are shown below). You can configure settings here as needed.

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-32.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=a500c6bd21820080678ca9ab1e0304c1" alt="" width="786" height="819" data-path="images/draftable-api-self-hosted/image-32.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/xiYLgQoBwoYUCU65/images/draftable-api-self-hosted/image-33.png?fit=max&auto=format&n=xiYLgQoBwoYUCU65&q=85&s=75fbd678cbff3becf60a5d76383279b3" alt="" width="717" height="437" data-path="images/draftable-api-self-hosted/image-33.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-34.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=1c70e446fb9d68f05e4347b6b04d3e18" alt="" width="802" height="907" data-path="images/draftable-api-self-hosted/image-34.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-35.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=76df97820ce37820db7e5e0027cb6918" alt="" width="795" height="1249" data-path="images/draftable-api-self-hosted/image-35.png" />
    </Frame>
  </Step>

  <Step>
    In the **Review + Create** tab, verify all the settings and confirm the validation check has passed. If everything is correct, select **Create** to begin deployment.

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-36.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=b3ac42b8c71fb8a8cfc9228fd97b90ed" alt="" width="877" height="411" data-path="images/draftable-api-self-hosted/image-36.png" />
    </Frame>

    Deployment may take some time. Once complete, click **Go to resource** to proceed with container configuration.
  </Step>
</Steps>

## Stage 3: Configuring the virtual machine and launching the container

### Connecting to the virtual machine

<Steps>
  <Step>
    Once the virtual machine is running, click **Connect** and select **SSH using Azure CLI**.

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-37.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=5c2fbc4348ed627a1ad4f38ed4861d91" alt="" width="1044" height="622" data-path="images/draftable-api-self-hosted/image-37.png" />
    </Frame>
  </Step>

  <Step>
    Wait for the validation checks to complete, then click **Connect**.

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-38.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=57ffba4178241073f39c91815e7c7713" alt="" width="579" height="903" data-path="images/draftable-api-self-hosted/image-38.png" />
    </Frame>
  </Step>

  <Step>
    A Cloud Shell CLI will launch in your browser. Type **Yes** to accept the fingerprint and connect.

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-39.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=7b4578420d87ca5ff161d66ccfcc1880" alt="" width="1184" height="221" data-path="images/draftable-api-self-hosted/image-39.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-40.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=7ae758ac36b2a481a8cd2edc6e77d73b" alt="" width="653" height="362" data-path="images/draftable-api-self-hosted/image-40.png" />
    </Frame>
  </Step>
</Steps>

### Installing Docker

<Steps>
  <Step>
    Run the following commands to set up the Docker repository:

    ```bash theme={null}
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-41.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=ea821cca669777311556bb7cad8813c0" alt="" width="1171" height="357" data-path="images/draftable-api-self-hosted/image-41.png" />
    </Frame>
  </Step>

  <Step>
    Add the Docker repository to your sources:

    ```bash theme={null}
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-42.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=ffcaffc8dd3d1fbdc718330fc8b39f5d" alt="" width="1155" height="262" data-path="images/draftable-api-self-hosted/image-42.png" />
    </Frame>
  </Step>

  <Step>
    Install Docker:

    ```bash theme={null}
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-43.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=962022b9c9b9d478a07b63857db6cad5" alt="" width="1110" height="364" data-path="images/draftable-api-self-hosted/image-43.png" />
    </Frame>
  </Step>

  <Step>
    Verify the installation by running the `hello-world` image:

    ```bash theme={null}
    sudo docker run hello-world
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-44.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=f7e0762714ab1a7dd6a2b677781d7966" alt="" width="772" height="363" data-path="images/draftable-api-self-hosted/image-44.png" />
    </Frame>

    If you see a success message, Docker is installed correctly.
  </Step>
</Steps>

### Pulling and configuring the Draftable container

<Steps>
  <Step>
    Pull the latest Draftable API Self Hosted image:

    ```bash theme={null}
    sudo docker pull draftable/apish:latest
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-45.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=1229709b26c13f172238fb53cebf88b0" alt="" width="880" height="319" data-path="images/draftable-api-self-hosted/image-45.png" />
    </Frame>
  </Step>

  <Step>
    Navigate to the root directory and create a folder for your Docker Compose file:

    ```bash theme={null}
    cd /
    ls
    sudo mkdir composefiles
    ls
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-46.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=0a9d7250ac5cce25478d99c6e5db985d" alt="" width="1249" height="54" data-path="images/draftable-api-self-hosted/image-46.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-47.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=e854897d36863f8adae764ab29f83895" alt="" width="1359" height="51" data-path="images/draftable-api-self-hosted/image-47.png" />
    </Frame>
  </Step>

  <Step>
    Navigate into the folder and create the `docker-compose.yml` file:

    ```bash theme={null}
    cd composefiles
    sudo touch docker-compose.yml
    sudo nano docker-compose.yml
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-48.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=23619e1a843212edd7de607ab3b27ef8" alt="" width="690" height="36" data-path="images/draftable-api-self-hosted/image-48.png" />
    </Frame>
  </Step>

  <Step>
    In the `nano` editor, paste the following basic configuration. For additional parameters, refer to our [API Self Hosted documentation](/hc/en-us/categories/4405478683545-Draftable-API-Self-hosted).

    ```yaml theme={null}
    version: '3.5'
    services:
      apish:
        environment:
          DRAFTABLE_APISH_NGINX: |-
        image: draftable/apish
        ports:
           - 80:80/tcp
           - 443:443/tcp
        volumes:
          - draftable-apish:/srv/draftable
          - /sys/fs/cgroup:/sys/fs/cgroup
    volumes:
      draftable-apish:
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-49.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=3a51b52baa8314258e5db21583609431" alt="" width="1114" height="361" data-path="images/draftable-api-self-hosted/image-49.png" />
    </Frame>

    Save the file with `Ctrl+O` and exit with `Ctrl+X`.
  </Step>
</Steps>

### Starting the container

<Steps>
  <Step>
    Start the Docker service:

    ```bash theme={null}
    sudo systemctl start docker
    ```
  </Step>

  <Step>
    Install the Docker Compose plugin:

    ```bash theme={null}
    sudo apt-get update
    sudo apt-get install docker-compose-plugin
    ```

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-50.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=5cbdb6f040df74415ab5a2b36daddbff" alt="" width="794" height="253" data-path="images/draftable-api-self-hosted/image-50.png" />
    </Frame>
  </Step>

  <Step>
    Launch the container with Docker Compose:

    ```bash theme={null}
    sudo docker compose up
    ```

    The container will begin its boot sequence. Give it time to configure, and upon successful completion you should see a message saying `Container startup complete.`

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-51.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=cafe7711b24495ac2a85db8a29dd43f8" alt="" width="608" height="79" data-path="images/draftable-api-self-hosted/image-51.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-52.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=fafc2bd951816228e9eae3a37d590180" alt="" width="624" height="350" data-path="images/draftable-api-self-hosted/image-52.png" />
    </Frame>
  </Step>

  <Step>
    Navigate back to the virtual machine in Azure to retrieve the **public IP address**. Copy it and enter it into your browser to connect to the instance.

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-53.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=708273f1656693998cad7e281eeba576" alt="" width="444" height="72" data-path="images/draftable-api-self-hosted/image-53.png" />
    </Frame>

    You should see a screen similar to below, confirming the container is running correctly.

    <Frame>
      <img src="https://mintcdn.com/draftable/YGM9Qz2FWPff3K0D/images/draftable-api-self-hosted/image-54.png?fit=max&auto=format&n=YGM9Qz2FWPff3K0D&q=85&s=0a41ce81a79cbdd364e77fe819c316ba" alt="" width="826" height="740" data-path="images/draftable-api-self-hosted/image-54.png" />
    </Frame>
  </Step>
</Steps>

## Next steps

You will now need to set up the administrator account. See [Draftable Self-hosted instance first time configuration](/hc/en-us/articles/8424839618457-Draftable-Self-hosted-instance-first-time-configuration) for details.

If you have any issues or questions, please contact us at [support@draftable.com](mailto:support@draftable.com).
