✨ Strapi MCP is now Generally Available - let your agents manage your Strapi content ✨

TutorialsBeginner4 min read

How to Quickly Get Started with Strapi Using Azure ARM Templates

January 19, 2023Updated on May 22, 2026

All components, i.e., Strapi & MySQL, run on a single VM; hence it is ideal for getting started, exploring Strapi, or a sandbox scenario.

What are Azure ARM templates?

Azure ARM templates are a way to implement infrastructure as code in Azure. Infrastructure as code's benefits includes deployment automation, consistent and repeatable infrastructure, and agility.

Deployment Specifications & Important Details

This guide uses an ARM (Azure Resource Manager) template to deploy the required Azure resources and a bash script to configure and install Strapi in it. You can do this with minimal user intervention.

The template creates the following required resources in its own new Resource Group:

  • Azure Virtual Machine & a disk
  • VNET & a Subnet
  • vNIC, Network Security Group

Strapi installation steps run using a bash script after the VM provisioning. The script is part of the repository that contains the ARM template.

The ARM template (JSON file) and the bash script are available on the GitHub repo.

Default Values

Azure Defaults

ParameterValueDescription
adminUsernamestrapiadminUsername for connecting (SSH) to the Azure VM
adminPasswordOrKey$tr@p!@12345Default password for the user

Strapi Defaults

A Strapi app called blog is created with the following defaults.

ParameterValue
NODE_ENVdevelopment
DB_HOSTlocalhost
DB_PORT3306
DB_NAMEstrapi_dev
DB_USERstrapi
DB_PASSmysecurepassword
JWT_SECRETaSecretKey

NOTE: This template has been deliberately created so that it requires the least possible inputs to get a working Strapi installation. Hence, many variables have been pre-defined as per minimum requirements. You can edit the ARM template if you wish to modify any variables, such as Azure VM size or password(s).

Running this Azure deployment as it is in Production is not recommended.

Pre-requisites

  • An Azure account with an active Subscription

While it is not mandatory but a basic understanding of the following will help if you wish to customize this template or the script

  • Basic knowledge of Microsoft Azure
  • Basic knowledge of JSON
  • Bash
  • Git

Deploying the ARM template

  1. Click the Deploy to Azure button below to load the template in Azure Portal. You may be prompted to sign in to Azure. Deploy to Azure

  2. In the custom deployment page, click Create new and create a new Resource Group for this deployment. Create a Resource Group

  3. Next, select your preferred Region and then click Review + create. Select a preferred region

  4. Ensure Validation passes , click Create to start the Azure resource deployment. Review deployment

  5. The deployment process will begin and take around 5-10 minutes. NOTE: If the deployment fails, delete the resource group completely and restart the deployment. Do not use the Redeploy feature.

  6. Once the deployment is complete, click Outputs to retrieve the randomly generated Public DNS of the Azure VM. Retrieve Strapi URL.

You can also retrieve this & the Public IP address from the Overview section of the Azure VM.

  1. You can now access the Strapi administration page at [DNS]:1337 or [PublicIP]:1337 and create the first administrator.

Modifying the default values

Azure infrastructure

You can modify the default values of the Azure infrastructure to your need. The following values could be changed (avoid changing other values, such as for networking and DNS, unless you are sure of the expected outcome):

  • virtualMachineName
  • adminUsername
  • adminPasswordOrKey (we are using a password based login approach)
  • vmSize (you will need to know the VM size SKUs)

After clicking Deploy to Azure, click Edit template.

Editing the ARM template - 1

Modify values as needed.

Editing the ARM template - 2

Click Save.

Continue with deployment.

Strapi installation

The installation uses some default values for database username, password, port, database name, etc. As mentioned earlier in the article, one can modify them after the installation if needed.

Refer to the documentation for instructions.

Security

  • The installation does not expose the MySQL database running locally from outside.
  • The installation does not use SSL/TLS by default.

Conclusion

This article demonstrates how to quickly bring up an Azure VM running Strapi using an ARM template or Infrastructure as Code approach.

Sangram RathCloud Architect & Technology Advisor

Multi-cloud professional with over 17 years of technology experience, primarily in the Cloud Computing, Virtualization & Datacenter domains. Multi-cloud certified since 2013 and a Microsoft Certified Trainer since 2015.

Streaming Strapi Dynamic Zones in Next.js 16: Part 2
Tutorials·14 min read

Streaming Strapi Dynamic Zones in Next.js 16: Part 2

Build the streaming UI for Strapi Dynamic Zones in Next.js 16: per-block Suspense boundaries, a block registry, webhook revalidation, and draft preview.

·July 16, 2026
Streaming Strapi Dynamic Zones in Next.js 16: Part 1
Tutorials·18 min read

Streaming Strapi Dynamic Zones in Next.js 16: Part 1

Learn how to model a Strapi 5 Dynamic Zone and build a typed two-phase fetch layer for Next.js 16 that streams content without client-side waterfalls.

·July 13, 2026
Building Docs for the AI Era, Part 1
Tutorials·10 min read

Building Docs for the AI Era, Part 1: Self-Healing Docs

Learn how Strapi uses AI, GitHub Actions, and progressive cost gating to automatically detect documentation gaps and keep docs aligned with code changes.

·June 11, 2026