Azure
XeroML runs on Azure via Azure Kubernetes Service (AKS), Azure Container Apps, or a single VM with Docker Compose.
Recommended Architecture
| Component | Azure Service |
|---|---|
| Web application | AKS or Azure Container Apps |
| Worker | AKS or Azure Container Apps |
| PostgreSQL | Azure Database for PostgreSQL |
| Redis | Azure Cache for Redis |
| Blob storage | Azure Blob Storage |
| TLS / Ingress | Azure Application Gateway or nginx ingress |
AKS Deployment
1. Create Resource Group and AKS Cluster
az group create --name xeroml-rg --location eastus
az aks create \ --resource-group xeroml-rg \ --name xeroml-cluster \ --node-count 3 \ --node-vm-size Standard_D2s_v3 \ --enable-managed-identity2. Set Up PostgreSQL
az postgres flexible-server create \ --resource-group xeroml-rg \ --name xeroml-postgres \ --admin-user xeroml \ --admin-password <secure-password> \ --sku-name Standard_D2s_v3 \ --tier GeneralPurpose3. Set Up Redis
az redis create \ --resource-group xeroml-rg \ --name xeroml-redis \ --sku Basic \ --vm-size c04. Deploy with Helm
# Connect to AKS clusteraz aks get-credentials --resource-group xeroml-rg --name xeroml-cluster
# Deploy XeroMLhelm install xeroml xeroml/xeroml \ --namespace xeroml \ --create-namespace \ -f values-azure.yamlvalues-azure.yaml:
database: url: "postgresql://xeroml@xeroml-postgres:password@xeroml-postgres.postgres.database.azure.com:5432/xeroml"
redis: url: "rediss://xeroml-redis.redis.cache.windows.net:6380"
ingress: enabled: true className: nginx host: xeroml.yourdomain.com annotations: cert-manager.io/cluster-issuer: letsencryptAzure Container Apps
For serverless container deployment:
az containerapp env create \ --name xeroml-env \ --resource-group xeroml-rg \ --location eastus
az containerapp create \ --name xeroml-web \ --resource-group xeroml-rg \ --environment xeroml-env \ --image ghcr.io/xeroml/xeroml:latest \ --target-port 3000 \ --ingress external \ --min-replicas 1 \ --max-replicas 10VM (Single Server)
For development or small teams, use Docker Compose on an Azure VM:
# Create a VM (Standard_D2s_v3 recommended)az vm create \ --resource-group xeroml-rg \ --name xeroml-vm \ --image Ubuntu2204 \ --size Standard_D2s_v3 \ --admin-username azureuser \ --generate-ssh-keys
# Install Docker and follow the Docker Compose guide