Azure does not currently support NFS file sharing between Azure volumes, which is a required component for API Self Hosted. Because of this, “native” deployment on Azure Container Apps is not supported. The supported method is to host a Linux virtual machine and run the container within it.
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.Managed identity
You will need a managed identity for the Key Vault process.Key Vault
Create a Key Vault to store keys, secrets, access policies, and certificates. 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
Secrets
Access policies
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.

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

Certificates
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.
Import a certificate: Select the Import method, upload the certificate file with the password. The certificate file must be in PKCS format.


Stage 2: Setting up the virtual machine
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

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.

Configure your ports. This depends on your use case, but a typical setup includes:
- Port 80 (HTTP)
- Port 443 (HTTPS)
- Port 22 (SSH)

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

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

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.
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
There is no required configuration in the Management, Advanced, or Tags tabs (default settings are shown below). You can configure settings here as needed.







Stage 3: Configuring the virtual machine and launching the container
Connecting to the virtual machine
Installing Docker
Pulling and configuring the Draftable container
In the 
Save the file with
nano editor, paste the following basic configuration. For additional parameters, refer to our API Self Hosted documentation.
Ctrl+O and exit with Ctrl+X.Starting the container
Launch the container with Docker Compose: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.


























