---
title: "Deploying Document Engine to Microsoft Azure"
canonical_url: "https://www.nutrient.io/guides/document-engine/deployment/microsoft-azure-aks/"
md_url: "https://www.nutrient.io/guides/document-engine/deployment/microsoft-azure-aks.md"
last_updated: "2026-06-09T10:21:54.319Z"
description: "Our recommended deployment approach in Microsoft Azure is using Helm on AKS, an Azure-managed Kubernetes service."
---

# Deploying to Microsoft Azure

Our recommended deployment approach in Microsoft Azure is using [Helm](https://www.nutrient.io/guides/document-engine/deployment/helm.md) on [AKS](https://azure.microsoft.com/en-us/products/kubernetes-service), an Azure-managed [Kubernetes](https://kubernetes.io/) service. Alternatively, any self-managed Kubernetes flavor may be used. Refer to our [Kubernetes deployment](https://www.nutrient.io/guides/document-engine/deployment/kubernetes.md) guide for more information.

Document Engine can successfully operate within other means of deployment, but we currently don’t provide documentation for alternative services.

## Troubleshooting: Azure PostgreSQL extension errors

When deploying Document Engine with Azure Database for PostgreSQL Flexible Server, you might encounter extension-related errors during database migrations that cause pods to crash.

### Common symptoms

You may encounter logs with errors like:

```

[error] ** (Postgrex.Error) ERROR 0A000 (feature_not_supported)
extension "pg_buffercache" is not allow-listed for "azure_pg_admin"
users in Azure Database for PostgreSQL

```

This error applies to any extension not on the allowlist, not just `pg_*` extensions (for example, `uuid-ossp`).

### Resolution steps

1. Add the required extensions to the allowlist in your Azure PostgreSQL server parameters:
   - Navigate to **Azure Portal** > **PostgreSQL Flexible Server** > **Server parameters**.
   - Find the `azure.extensions` parameter.
   - Add the missing extension names (comma-separated).

2. Verify extensions are available by connecting to your database and running the following:

   ```sql

   SELECT name FROM pg_available_extensions
   ```

3. Restart Document Engine pods to trigger migrations again:

   ```bash

   kubectl rollout restart deployment/document-engine -n document-engine
   ```

Different versions of Document Engine may require different extensions. Check the error logs to identify which specific extensions need to be enabled.
---

## Related pages

- [Deploying to Amazon Web Services](/guides/document-engine/deployment/aws.md)
- [Backup and recovery](/guides/document-engine/deployment/backup-and-recovery.md)
- [Choose a Docker registry](/guides/document-engine/deployment/docker-registry.md)
- [Deploying to Google Cloud Platform](/guides/document-engine/deployment/google-cloud-platform.md)
- [Deploying on Kubernetes with Helm](/guides/document-engine/deployment/helm.md)
- [Horizontal scaling](/guides/document-engine/deployment/horizontal-scaling.md)
- [Document Engine deployment overview](/guides/document-engine/deployment.md)
- [Application-specific timeouts](/guides/document-engine/deployment/ingress.md)
- [Deploying on Kubernetes](/guides/document-engine/deployment/kubernetes.md)
- [Product activation](/guides/document-engine/deployment/product-activation.md)

