# Installation on Azure

Deploy a complete Zato environment to a Microsoft Azure virtual machine in a few clicks.

You can use the [Azure template](https://raw.githubusercontent.com/zatosource/zato/refs/heads/main/cloud/azure/zato-azure-deploy.json) to deploy a virtual machine with a complete Zato environment in it.

The environment will also auto-install an SSL certificate from [Let's Encrypt](https://zato.io/docs/admin/security/ssl/index.html), without any configuration on your part.

**Using GUI**

- **Click the button below to open the Azure portal** with the [template](https://raw.githubusercontent.com/zatosource/zato/refs/heads/main/cloud/azure/zato-azure-deploy.json) already loaded

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fzatosource%2Fzato%2Frefs%2Fheads%2Fmain%2Fcloud%2Fazure%2Fzato-azure-deploy.json)

- Fill out the form:

  - Create a new resource group, calling it "zato"
  - Paste your SSH public key into **Admin password or key**, or set **Authentication type** to `password` - this will be your SSH password
  - Provide any value for **Zato password** and it will become the password to your Zato Dashboard
  - Set **Allowed source addresses** to your own IP (you can check it [here](https://checkip.amazonaws.com))
  - Leave everything else as it is
- Click **Review + create**, then **Create** and wait a few minutes for the virtual machine to start

- After the virtual machine starts, you may need to wait a few minutes more for the container with Zato to start

- Open the **Outputs** tab of the deployment and log in to your Dashboard:

  - Dashboard: the **dashboardUrl** value
  - Username: admin
  - Password: the one that you set above under "Zato password"

- That concludes the process - the best way to continue is to visit the [tutorials](https://zato.io/tutorials/index.html) now.

**Using CLI**

- Run the below:

```bash
# Note: Change from UK South to a different region if needed
az group create -n zato -l uksouth

[ -f ~/.ssh/zato ] || ssh-keygen -t ed25519 -f ~/.ssh/zato -N "" && \
az deployment group create -g zato \
    --template-uri https://raw.githubusercontent.com/zatosource/zato/refs/heads/main/cloud/azure/zato-azure-deploy.json \
    --parameters adminPasswordOrKey="$(cat ~/.ssh/zato.pub)" \
                 zatoPassword=mypassword \
                 allowedSourceAddresses="['YOUR_IP_ADDRESS']"
```

- The command prints the Dashboard URL when it finishes - log in there:

  - Username: admin
  - Password: the one that you set above
- That concludes the process - the best way to continue is to visit the [tutorials](https://zato.io/tutorials/index.html) now.

## Learn more {#learn-more}

- [Production checklist](https://zato.io/docs/admin/production-checklist.html) - What to confirm before an environment takes real traffic
- [Audit log](https://zato.io/docs/admin/audit-log/) - Every request, response and error, and what you can do with them afterwards
- [Health checks](https://zato.io/docs/admin/health-checks.html) - Have Zato ping your outgoing connections instead of waiting for traffic to fail
- [Logging](https://zato.io/docs/admin/logging.html) - What is written where, and how to ship it to Splunk, Loki, Elastic or Datadog
- [GitOps with enmasse](https://zato.io/docs/admin/enmasse.html) - Keep the whole environment in git as YAML and import it anywhere
