Deployment

Deploy Link Redirector to Azure

All link data stays inside your Azure tenant. Deployment takes roughly 15 minutes and requires an Azure subscription.

Your license key is required. You received a license key and license public key in your trial welcome email. Have them ready before you start — you will enter them during deployment.

Prerequisites

  • Azure subscription with permission to create resource groups and resources
  • License key (JWT) from your trial welcome email
  • License public key (RSA PEM) from your trial welcome email
  • Azure AD App Registration — the management UI authenticates users via Microsoft Entra ID. Create a registration before you deploy:
    1. In the Azure Portal, go to Microsoft Entra ID → App registrations → New registration.
    2. Give it a name (e.g. Link Redirector) and leave Supported account types as Single tenant.
    3. Under Redirect URI, choose Single-page application (SPA). You will fill in the URI after deployment — leave it blank for now.
    4. Click Register. Copy the Application (client) ID — you will use this as aadClientId.
  • Azure AD admin group Object ID — only members of this group can manage links. To find it, go to Microsoft Entra ID → Groups, select the group, and copy its Object ID. This becomes aadAdminGroupId.
  • Azure CLI (optional, for CLI-based deployment) — install guide
Estimated cost: Link Redirector runs on the Azure Consumption (Serverless) plan — you pay only for requests processed. For typical enterprise usage (thousands of redirects/day), expect < $5 / month in Azure costs.

Step 1 — Provision Azure Infrastructure

Choose either the one-click portal button or the Azure CLI. Both deploy the same Bicep template, which creates: a Storage Account, App Service Plan, Azure Function App, Static Web App (management UI), Log Analytics Workspace, and Application Insights.

Click the button below. You will be asked to sign into Azure Portal and fill in five required parameters: Org Prefix, License Key, License Public Key, AAD Client ID, and AAD Admin Group ID.

ParameterDescriptionExample
orgPrefix 3–10 lowercase letters/numbers used to name your resources. Must be globally unique. contoso
licenseKey The JWT from your welcome email. Paste the full token. from email
licensePublicKey The RSA public key PEM from inWorks LLC. Include the -----BEGIN PUBLIC KEY----- header and footer. from inWorks LLC
aadClientId Application (client) ID of the Azure AD app registration you created in Prerequisites. Used to authenticate users in the management UI. from App Registration
aadAdminGroupId Object ID of the Azure AD group whose members can manage links. Only members of this group can log into the management UI. from Entra ID group
aadUserGroupId Optional. Object ID of a broader Azure AD group whose members can use the management UI (create/manage links) without admin rights. Leave blank to restrict access to the admin group only. from Entra ID group
aadTenantId Optional. Your Azure AD tenant ID for single-tenant deployments. Leave blank to allow any Microsoft tenant. from Entra ID overview
customHostname Optional. Your short link domain (e.g. go.contoso.com). Leave blank to use the default Azure URL. go.contoso.com
# 1. Create a resource group (pick any region) az group create \ --name rg-linkredirector \ --location eastus # 2. Deploy the Bicep template az deployment group create \ --resource-group rg-linkredirector \ --template-uri https://linkredirector.io/assets/deploy/main.json \ --parameters \ orgPrefix=contoso \ licenseKey="<paste-license-key>" \ licensePublicKey="<paste-public-key-pem>" \ aadClientId="<app-registration-client-id>" \ aadAdminGroupId="<admin-group-object-id>" \ # optional: broader user group (omit to restrict to admins only) aadUserGroupId="<user-group-object-id>"
# 1. Create a resource group New-AzResourceGroup -Name rg-linkredirector -Location eastus # 2. Deploy the Bicep template New-AzResourceGroupDeployment ` -ResourceGroupName rg-linkredirector ` -TemplateUri https://linkredirector.io/assets/deploy/main.json ` -orgPrefix contoso ` -licenseKey "<paste-license-key>" ` -licensePublicKey "<paste-public-key-pem>" ` -aadClientId "<app-registration-client-id>" ` -aadAdminGroupId "<admin-group-object-id>" ` # optional: broader user group (omit to restrict to admins only) -aadUserGroupId "<user-group-object-id>"
After deployment completes, note the Function App name from the outputs (func-orgPrefix-lr). You will need it in the next step.

Step 2 — Deploy the Application Code

The Bicep template provisions the Azure infrastructure, but the Link Redirector application code must be deployed separately. Run the following command after your resource group deployment completes:

az functionapp deployment source config-zip \ --resource-group rg-linkredirector \ --name func-contoso-lr \ --src https://linkredirector.io/assets/deploy/service.zip
Publish-AzWebApp ` -ResourceGroupName rg-linkredirector ` -Name func-contoso-lr ` -ArchivePath https://linkredirector.io/assets/deploy/service.zip

Step 3 — Verify Application Settings

The Bicep template sets all required application settings automatically. After deployment, confirm the following settings are present in your Function App's Configuration → Application settings:

Setting nameValue sourceRequired
LicenseKey Your trial welcome email Yes
LicensePublicKey Your trial welcome email Yes
AadClientId Application (client) ID of your Azure AD app registration Yes
AdminGroupAccessID Object ID of the Azure AD group whose members can manage links Yes
UserGroupAccessID Object ID of a broader group with regular user access (create/manage links, no admin rights). Leave blank to restrict to admins only. No
AadTenantId Your Azure AD tenant ID, or common for multi-tenant Yes
StorageConnectionString Set automatically by Bicep template Yes
SwaUrl Set automatically by Bicep template (URL of the Static Web App) Yes
APPLICATIONINSIGHTS_CONNECTION_STRING Set automatically by Bicep template Recommended
After deployment, go back to your Azure AD App Registration and add the Static Web App URL as a Redirect URI under Authentication → Single-page application. The SWA URL is shown in the deployment outputs as swaUrl and looks like https://<random>.azurestaticapps.net.

To update a setting in the Azure Portal: go to your Function App → Settings → Environment variables → App settings. Click Save after any change — the Function App will restart automatically.

To update a setting from the CLI:

az functionapp config appsettings set \ --resource-group rg-linkredirector \ --name func-contoso-lr \ --settings LicenseKey="<new-value>"

Step 4 — Deploy the Outlook Add-In

Link Redirector includes a Microsoft Outlook Add-In that lets users create and insert short links without leaving their email. Deploy it from the Microsoft 365 admin center:

  1. Sign into the Microsoft 365 admin center as a Global Administrator.
  2. Go to Settings → Integrated apps → Get apps.
  3. Search for Link Redirector and click Get it now.
  4. On the deployment screen, select which users or groups should have access.
  5. Enter your Function App URL when prompted (e.g. https://func-contoso-lr.azurewebsites.net).
  6. Click Deploy. The add-in will appear in Outlook within 24 hours.
Complete Steps 1–3 before deploying the Add-In. The add-in requires a reachable Function App URL to function.

Step 5 — Custom Short Link Domain (optional)

By default your links use the Azure-assigned URL (func-contoso-lr.azurewebsites.net). To use a branded domain like go.contoso.com:

  1. In your DNS provider, create a CNAME record:
    go.contoso.com CNAME func-contoso-lr.azurewebsites.net
  2. In the Azure Portal, go to your Function App → Custom domains → Add custom domain.
  3. Enter your hostname (go.contoso.com) and click Validate.
  4. Once validation passes, click Add custom domain.
  5. Add a Managed Certificate to enable HTTPS — Azure provisions it automatically at no extra cost.

Step 6 — Monitoring Alerts (optional)

Link Redirector ships a separate Bicep template for Azure Monitor alert rules. It sets up six alerts: endpoint availability (Sev 0), HTTP 5xx errors, storage availability, failed request rate, high response time, and exception count.

az deployment group create \ --resource-group rg-linkredirector \ --template-uri https://linkredirector.io/assets/deploy/alerts.json \ --parameters \ functionAppName=func-contoso-lr \ storageAccountName=contosolar<hash> \ appInsightsName=appi-contoso-lr \ notificationEmail=it-alerts@contoso.com \ endpointUrl=https://go.contoso.com

Substitute the actual resource names from your Step 1 deployment outputs. The storage account name and app insights name are shown in the Azure Portal under your resource group.

Need Help?

If you run into any issues during deployment, contact our support team — we're available throughout your trial and respond within one business day.

inWorks LLC
Email: support@inworksllc.com

You can also visit the Support page for FAQs and additional resources.