Devolutions Server deployment to Azure App Service using a container
This guide covers deploying Devolutions Server to Azure App Service using a container, providing a fully managed platform with automatic scaling, built-in TLS, and Azure service integration.
Azure Portal deployment
Prerequisites
An Azure subscription.
Azure CLI installed:
az --version(or use Azure Cloud Shell).SQL Server administrator access (for database creation).
Devolutions Server container image in registry (Docker Hub or Azure Container Registry).
Create an Azure SQL database
Navigate to the Azure portal.
Click Create a resource, and search for SQL Database – Create.
In the Basics tab, fill the fields as follows:
FieldsSuggested inputSubscription
Select your subscription.
Resource Group
Create a new group named
rg-dvls-prod.Database name
Enter
dvls.Server
Click on Create new and fill the fields as follows:
Server name:
dvls-sql-server-<unique>. The server name must be globally unique.Location: select a region.
Authentication: enter your SQL authentication.
Server admin login:
sqladmin.Password: choose a strong password.
Click on OK.
Workload environment
Select Production.
Compute + storage
Click on Configure database, and fill the fields like so:
Service tier: choose Standard.
DTUs: SO (10 DTUs) for testing, 20+ DTUs for production.
Click on Apply.
Then, for the Networking tab:
FieldsSuggested inputConnectivity method
Select Public endpoint.
Allow Azure services
Choose Yes, as it is required for App service to work.
Add current client IP
Choose Yes, as it is necessary for management purposes.
And the Additional settings tab:
FieldsSuggested inputUse existing data
Select None.
Collation
Choose Default.
Click on Review + create – Create and wait for deployment. This should take about 3-5 minutes.
Create a database user for Devolutions Server
Navigate to your SQL database's Query editor and log in with server administrator credentials.
Run the following SQL query:
Create an App Service Plan
Click Create a resource – App Service Plan – Create.
Fill in the Basics tab as follows:
FieldsSuggested inputSubscription
Select your subscription.
Resource Group
Enter the same as the database's:
rg-dvls-prod.Name
Enter
asp-dvls-prod.Operating System
Select your desired operating system.
Region
Enter the same region as the one chosen for during SQL database configuration.
Pricing tier
Click Change size, then choose pricing tiers for:
Production: POV3 (recommended minimum).
Development: B2 (basic tier, lower cost).
Once your choice is made, click Apply.
Click Review + create – Create.
Create the app service
Head over to Create a resource – Web App – Create.
In the Basics tab, fill the fields as shown below:
FieldsSuggested inputSubscription
Select your subscription.
Resource Group
Enter
rg-dvls-prod, as before.Name
Enter
dvls-prod-<unique>. It will becomedvls-prod-<unique>.azurewebsites.net.Publish
Choose Container.
Operating System
Select your desired operating system.
Region
Enter the same region as for the SQL database and App Service Plan.
Linux Plan
Select
asp-dvls-prod(created during the App Service Plan's creation).And the Container tab:
FieldsSuggested inputImage Source
Choose Docker Hub or Azure Container Registry.
Image and tag
Enter
devolutions/devolutions-server:release-20XX.X(replace the version number with the latest one).Registry access
Select Public (for Docker Hub).
Click Review + create – Create, and wait 2-3 minutes for deployment.
Once deployment completes, navigate to Configuration – General settings and turn on Always on. This prevents the container from idling and starting only in response to the first inbound request, which can otherwise appear as a startup or timeout failure.
Configure the application's settings
Navigate to App Service – Configuration – Application settings.
Click New application setting for each variable:
NameValueNotesDATABASE_ENCRYPTtrueRequired for Azure SQL. Encrypts the SQL connection (TLS). Azure SQL always enforces encryption, so the connection fails without it.
DATABASE_HOSTdvls-sql-server-<unique>.database.windows.netYour SQL Server hostname.
DATABASE_NAMEdvlsYour database name.
DATABASE_USERNAMEdvls_userThe dedicated SQL user.
DATABASE_PASSWORDYourSecurePassword123!Use Key Vault reference in production.
WEB_SCHEMEhttpProtocol (App Service handles HTTPS termination).
PORT5000The container's listen port.
DVLS_TELEMETRYtrueEnable telemetry.
WEBSITES_PORT5000Azure-specific (tells App Service which port to forward). Some new Azure web apps now have Sidecar support enabled by default. When Sidecar support is enabled,
WEBSITES_PORTis ignored. Either disable Sidecar support to useWEBSITES_PORT=5000as documented, or leave it enabled and set the port to 5000 directly.Click Save, then Continue to confirm restart.
Initialize Devolutions Server and retrieve encryption configuration
Go to Configuration – Application settings.
Add new setting:
Name:
DVLS_INITValue:
true
Click Save – Continue. This restarts the app.
Under Monitoring, navigate to Log stream, and wait 1-2 minutes for initialization to complete.
Enable SSH access temporarily by heading to Development Tools – SSH, and clicking on Go.
Extract the encryption configuration:
Copy the base64 output.
Go to Configuration – Application settings – New application setting. Enter
DVLS_ENCRYPTION_CONFIG_B64for the Name field and paste the base64 file's content copied during step #7 in the Value field. Click OK.Find the
DVLS_INITsetting and click Delete.Click Save, and then Continue.
Go to Configuration – Application settings.
Add new setting:
Name:
DVLS_INITValue:
true
Click Save – Continue. This restarts the app.
Under Monitoring, navigate to Log stream, and wait 1-2 minutes for initialization to complete.
Enable SSH access temporarily by heading to Development Tools – SSH, and clicking on Go.
Extract the encryption configuration:
Copy the base64 output.
Go to Configuration – Application settings – New application setting. Enter
DVLS_ENCRYPTION_CONFIG_B64for the Name field and paste the base64 file's content copied during step #7 in the Value field. Click OK.Find the
DVLS_INITsetting and click Delete.Click Save, and then Continue.
Go to Configuration – Application settings.
Add new setting:
Name:
DVLS_INITValue:
true
Click Save – Continue. This restarts the app.
Under Monitoring, navigate to Log stream, and wait 1-2 minutes for initialization to complete.
Enable SSH access temporarily by heading to Development Tools – SSH, and clicking on Go.
Extract the encryption configuration:
Copy the base64 output.
Go to Configuration – Application settings – New application setting. Enter
DVLS_ENCRYPTION_CONFIG_B64for the Name field and paste the base64 file's content copied during step #7 in the Value field. Click OK.Find the
DVLS_INITsetting and click Delete.Click Save, and then Continue.
Access Devolutions Server
Navigate to Overview – URL.
Click the URL or visit:
https://devolutions-server-prod-<unique>.azurewebsites.netLogin with default credentials:
Username:
dvls-adminPassword:
dvls-admin
Immediately after login, change the default password by heading to Administration – Users, clicking on the vertical ellipsis button of the dvls-admin user, and selecting Change password.
Azure CLI Deployment
Azure CLI is also available for automated or repeatable deployments.
Prerequisites
Custom domain and TLS
Add custom domain
Navigate to App Service – Custom domains – Add custom domain.
Enter your domain:
devolutions-server.company.comFollow DNS configuration instructions:
CNAME:
devolutions-server.company.com→devolutions-server-prod-<unique>.azurewebsites.net.Or A record + TXT record for apex domain.
Click on Validate, then Add.
Add managed certificate (free and renews automatically)
Navigate to Certificates – Managed certificates – Add certificate.
Select your custom domain.
Click on Validate, then Add.
Navigate to Custom domains, select your domain, and click on Add binding.
For the Certificate, select Managed certificate.
For the TLS/SSL type, choose SNI SSL.
Click Add.
Force HTTPS
Navigate to Configuration – General settings.
Set HTTPS Only to On, and click on Save.
Monitoring
Enable Application Insights
Portal
Navigate to App Service – Application Insights – Turn on Application Insights.
Create new or Select existing Application Insights resources.
Click Apply.
CLI
The location is set to East US as an example here. Make sure to change the value to your region.
View logs
Stream logs
Download logs
Stream logs
Download logs
Stream logs
Download logs
Security
Use Azure Key Vault for secrets
Enable Managed Identity:
Create a Key Vault and store secret:
Grant access:
Reference in App Settings:
Enable Managed Identity:
Create a Key Vault and store secret:
Grant access:
Reference in App Settings:
Enable Managed Identity:
Create a Key Vault and store secret:
Grant access:
Reference in App Settings:
See also
Last updated
Was this helpful?