Skip to main content

Azure Deployment

Deploy Ignixa to Azure App Service with SQL Server and managed identity.

One-Click Deploy

Deploy to Azure

Deploys:

  • Linux App Service (B1)
  • Azure SQL Database (Basic)
  • Storage Account
  • Managed Identity (passwordless auth)

After deployment: https://{appName}.azurewebsites.net/metadata

CLI Deployment

# Create resource group
az group create --name ignixa-rg --location eastus

# Deploy
az deployment group create \
--resource-group ignixa-rg \
--template-file deploy/azure/main.bicep \
--parameters appName=ignixa-demo

Parameters

ParameterDefaultDescription
appNamerequiredBase name for resources
locationresource groupAzure region
skuB1App Service SKU
sqlSkuBasicSQL Database SKU

Architecture

┌────────────────────────────────────────────────────────┐
│ Azure Resource Group │
├────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌────────────────┐ │
│ │ App Service │──│ SQL Server │ │ Storage Account│ │
│ └──────┬──────┘ └─────────────┘ └────────────────┘ │
│ │ ▲ │
│ └────────────────────────────────────┘ │
│ Managed Identity │
└────────────────────────────────────────────────────────┘

Key Resources

App Service

resource appSettings 'Microsoft.Web/sites/config@2022-09-01' = {
name: 'appsettings'
properties: {
Tenants__Configurations__1__Storage__ConnectionString: '@Microsoft.KeyVault(...)'
ASPNETCORE_ENVIRONMENT: 'Production'
}
}

SQL Server (Entra ID)

resource sqlServer 'Microsoft.Sql/servers@2022-05-01-preview' = {
name: '${appName}-sql'
properties: {
administrators: {
azureADOnlyAuthentication: true
login: identity.name
sid: identity.properties.clientId
}
}
}

Health Check

resource healthCheck 'Microsoft.Web/sites/config@2022-09-01' = {
name: 'web'
properties: {
healthCheckPath: '/health/check'
}
}