Installing the Weavy Management Portal

Ready to setup your Weavy environment? This section will help you configure and deploy the Weavy Management Portal, which does the heavy lifting when it comes to deploying and managing Weavy installations in your Azure environment.

Overview of the portal

The Weavy Management Portal is a set of resources that you deploy to a Azure subcription in your Azure account. The portal is deployed using a script which you execute through the Azure Cloud Shell in your Azure Portal.

We recommend that you create a new Azure subscription for Weavy. This way you will restrict access for the portal to this subscription. (A new subscription does not normaly incur any additional costs, since you only pay for resources used.)

The following Azure resources are created when deploying the portal:

A Resource group containing:

  • A Storage account
  • A SQL Server instance
  • A SQL Database
  • An App Service Plan
  • An App Service (web site)

If you configure the portal to use a custom domain, these resources will also be created:

  • A DNS Zone
  • A Certificate

The following changes will be made to the subscription:

  • Registration of the following resource providers: Microsoft.Web, Microsoft.Sql, Microsoft.Storage
  • A service principal will be created with access to the subscription

The SQL Server and App Service Plan that is created will later on also contain the Web apps and SQL databases for the Weavy installation you deploy using the portal (until the total number of resources reaches a threshold, which will trigger the creation of a new App Service plan and SQL Server).


There are a few steps that needs to be taken before deploying the portal.

1. SMTP Server Settings

You need the specifics of an SMTP server for sending emails from the Portal. If you currently don’t have a publicly available server, there are plenty of email services to choose from (SendGrid, Amazon SES etc.). Obtain the settings required to connect to your SMTP server and have it ready for when you configure the Portal.

2. Custom domain

Decide if you want to configure a custom domain for the deployed Weavy installations. If you don’t configure a custom domain the Weavy installations you deploy will be accessible on the default https://* url.

You can configure a custom domain at a later stage, but you will need to manually update existing Weavy installations to use the custom domain as well as making some changes to your Azure environment.

If you need to use a custom domain you need to take these steps before continuing, otherwise skip this step.

  • You need to purchase a domain for the deployed Weavy sites, for example The deployed sites will then be configured with hostname
  • You need a SSL wildcard certificate for that domain (* in the form of an pfx file with a private key.

Name the pfx file custom-domain.pfx.


Before deploying the portal you need to configure some settings. See the configuration documentation for a complete list of the configuration settings and their meaning.

Log in to your Azure Portal and open the Azure Cloud Shell (see screenshot below).

If you have not used the Azure Cloud Shell before you will be prompted to create a new storage for persisting files.

Maximize the window and select Bash in the shell language selector.

Execute the following lines in the terminal:

curl >
code ./

This should download an empty configuration file and open the Visual Studio Code plugin enabling you to make changes to the configuration.

Referencing the configuration documentation, enter the appropriate values for the settings defined in the configuration file. Make sure all required settings are entered.

The section resource names lets you configure the names of some of the deployed resources. Do not remove the variable Prefix when a resource name contains it.

When you are done, save the file (ctrl+s) and close the editor (ctrl+q).

Upload Resources

You will need to create a signing certificate for the portal. The easiest way to achieve this is to create a self-signed certificate.

Start by opening PowerShell as an administrator on your local computer. Replace password (and optionally filepath) and execute the script below in the PowerShell console.

$thumb = (New-SelfSignedCertificate -FriendlyName "Weavy Management Cert" -DnsName "" -NotAfter (Get-Date).AddYears(10) -HashAlgorithm SHA256 -KeySpec Signature -KeyLength 2048 -CertStoreLocation cert:LocalMachine\My).Thumbprint
$pwd = ConvertTo-SecureString -String "password" -Force -AsPlainText
Export-PfxCertificate -Cert "cert:\LocalMachine\my\$thumb" -FilePath "C:\wmp-certificate.pfx" -Password $pwd -Force

The created .pfx file must be named wmp-certificate.pfx

Use the Upload/download functionality of the Azure Cloud Shell to upload the file wmp-certificate.pfx to your mounted . If you are using a custom domain, make sure to also upload the custom-domain.pfx file.


Issue the ls command and make sure the follwing files are listed:

  • wmp-certificate.pfx
  • custom-domain.pfx (if you are using a custom domain)

Execute the following line to set execute permissions for the file:

chmod +x ./

Execute the script file by issuing:


The deployment will commence after initial validation of the settings you provided. If you encounter any validation errors, go back to fix them in your config file by executing the following command:

code ./

Don’t forget to save the file (as described earlier) before executing the script again.

If the deployment fails, you will get an option to remove the resources. Please make sure you do that before attempting to deploy again.

Post deployment steps

If you opted to use a custom domain, you will see the nameservers you need to configure in your DNS in order to delegate your DNS zone to Azure DNS.

Feel free to manually add a custom domain for your portal. If you do, please update the value for ApplicationUrl in the AppSettings for the Weavy Management Portal.

The configuration settings are saved as appSettings on the deployed App Service and can later on be changed by navigating to the Wep App (App Service) in your Azure portal.