Skip to content

Azure Installation

Self-hosted

This guide explains how to deploy Entropy Data on Microsoft Azure. Azure offers multiple deployment options, from managed container platforms to fully managed Kubernetes clusters.

Prerequisites

  • Active Azure subscription
  • Azure CLI installed and configured
  • Basic understanding of Azure services
  • SMTP credentials (Azure Communication Services or SendGrid recommended). Optional, but required for invitations and password resets.

Deployment Options

Azure provides several options for deploying Entropy Data:

  1. Azure Container Apps - Managed container platform with built-in HTTPS ingress and scaling (detailed below)
  2. Azure Kubernetes Service (AKS) - Full Kubernetes for enterprise deployments (see Kubernetes installation guide)
  3. Azure App Service - Runs the Docker image as a Linux web app (see the App Service environment variables)

Azure Container Apps runs the Entropy Data container without managing servers, with HTTPS ingress, health probes, and log collection included.

Deploy Using ARM Template

Click the button below to deploy Entropy Data to Azure using an Azure Resource Manager template:

Deploy to Azure

The template is maintained as a Bicep file in the Community Edition repository. The deployment creates the following resources:

  • Container Apps Environment - Consumption workload profile, integrated into the virtual network
  • Container App - Runs the Entropy Data Docker container with public HTTPS ingress and health probes
  • Log Analytics Workspace - Collects the container logs
  • Azure Database for PostgreSQL - Flexible server with the required extensions vector, uuid-ossp, and hstore
  • Virtual Network - Isolates the database from public internet exposure
  • Private DNS Zone - Enables secure database connectivity

The database password is generated during deployment and passed to the Container App as a secret, as is the SMTP password.

Important Parameters

When deploying via the Azure Portal, configure these key parameters:

  • containerAppName: Name of the Container App (default entropy-data). It becomes part of the default domain https://{containerAppName}.{random}.{region}.azurecontainerapps.io
  • superAdmins: Comma-separated email addresses of administrators who will have access to the /admin page
  • smtpHost: SMTP server hostname (e.g., smtp.sendgrid.net). Leave empty to run without transactional emails
  • smtpUsername: SMTP authentication username
  • smtpPassword: SMTP password or API key
  • mailFrom: Sender email address for outgoing emails. Required when smtpHost is set
  • applicationHostWeb: Public URL of the application when using a custom domain. Leave empty to use the default domain
  • containerCpu and containerMemory: Container size (default 1 CPU and 2Gi). Must be one of the allowed combinations of the Consumption workload profile, such as 0.5/1Gi, 1/2Gi, 2/4Gi, or 4/8Gi

All other parameters have sensible defaults and can be customized as needed.

Deploy Using the Azure CLI

az group create --name entropy-data --location westeurope

az deployment group create \
  --resource-group entropy-data \
  --template-uri https://raw.githubusercontent.com/entropy-data/entropy-data-ce/main/azure/entropy-data-ce.json \
  --parameters \
    superAdmins=admin@example.com \
    smtpHost=smtp.sendgrid.net \
    smtpUsername=apikey \
    smtpPassword=xxx \
    mailFrom=support@example.com

The deployment takes about 10 to 15 minutes, most of it for the PostgreSQL server. The application URL is shown as the applicationUrl output of the deployment. Note that not every region offers PostgreSQL Flexible Server to every subscription. If the deployment fails with a message about the Version parameter, choose a different region.

Configure Custom Domain (Optional)

To use your own domain, add the domain and a managed certificate to the Container App, then run the deployment again with applicationHostWeb set to the public URL, e.g. https://entropy.example.com. The URL is used in emails to build links.

Upgrade

To upgrade, run the deployment again with containerImageUrl set to the new image tag. The Container App creates a new revision and switches traffic to it once the health probes pass.

Migrating from the App Service Template

Earlier versions of the template deployed Entropy Data as an App Service web app. The App Service subnet cannot be removed while the web app is still connected to it, so delete the web app and the App Service plan first, then run the new template in the same resource group. The PostgreSQL server keeps its name and data. Provide the existing postgresAdminPassword as a parameter, otherwise a new password is generated and the administrator password of the server is changed.

Next Steps

Additional Resources