Table of Contents

Deploy XMPro on Windows Server 2022

Introduction

Deploy the XMPro platform on Windows Server 2022 using native IIS hosting in under 30 minutes with our interactive installer. This guide walks you through a single-server installation where all XMPro products run on one server using IIS web applications and Windows services.

Note

This guide uses native IIS deployment - not containers. XMPro applications run as IIS web applications and Windows services.

Single-Server Architecture

XMPro Single-Server Deployment Architecture

Prerequisites

Before installing XMPro applications, ensure your Windows Server has the following components installed.

Software Requirements

Component Version Details
Operating System Windows Server 2022 Standard or Datacenter edition, updated with the latest Windows Updates.
SQL Server 2022 (Standard) Mixed Mode authentication enabled.

Database Account: Create a dedicated user account (e.g., xmadmin) with only required permissions (dbcreator and securityadmin roles) instead of using the built-in sa account.
dbcreator allows creating databases
securityadmin allows managing database logins

Certificate Trust: In production, configure the Windows Server to trust the SQL Server certificate. For non-production environments, answer Y (Yes) when prompted "Trust SQL Server Certificate?" during installation (less secure). See Troubleshooting for detailed setup instructions.
IIS 10.0+ Web Server role with required features:
• Common HTTP Features (Default Document, Static Content)
• Application Development (ASP.NET 4.8, .NET Extensibility 4.8)
• Health and Diagnostics (HTTP Logging)
• Security (Request Filtering)
• Management Tools (IIS Management Console)
IIS URL Rewrite Module 2.1+ Required for application routing.
.NET Framework 4.8 Required for legacy compatibility.
.NET 8 Hosting Bundle 8.0+ Critical: Must install the Hosting Bundle.
HTTP.sys Configuration Registry settings Increase max header size to prevent HTTP 400 errors.
MaxFieldLength = 65536
MaxRequestBytes = 65536
See Troubleshooting Guide for configuration steps.

Certificate Requirements

Certificate Type Purpose File Format Notes
Signing Certificate JWT token signing for inter-product authentication. .pfx with password Self-signed or CA-issued.
4096-bit RSA key recommended.
See Troubleshooting Guide for creation example.
SSL Certificate HTTPS encryption for web traffic. .pfx with password Production: Use certificate from trusted CA.
Testing: Self-signed acceptable.
Must include hostname in Subject Alternative Names (SAN).

Quick Deployment

Run the Installer

Open CMD (Command Prompt as Administrator) on your Windows Server and run:

powershell.exe -ExecutionPolicy Bypass -Command "$env:SCRIPT_URL='{{INSTALL_URL_PREFIX}}{{VERSION}}/install-xmpro-application.ps1'; iex (irm $env:SCRIPT_URL)"

This command downloads and runs the interactive installer in one step. The installer will launch a configuration wizard that guides you through setup.

Configuration Prompts

The installer will ask you several questions. Here's what each prompt means:

1. Product Selection

The following prompts will ask you sequantially on which of the XMPro components you want to install. The default value for each prompt is "Y" for yes but you are open to choose no (by typing "N") if you only want to install select XMPro Components. However, some components might require existing installation of other components which is also detailed on the table below:

Prompt What It Means Default Value
Install SM? (y/n) Whether to install Subscription Manager. A non-Y/y input means installation of Subscription Manager will be skipped. Required first when installing AD/DS. y
Install AD? (y/n) Whether to install App Designer. A non-Y/y input means installation of App Designer will be skipped. Requires an existing SM Installation. y
Install DS? (y/n) Whether to install Data Stream Designer. A non-Y/y input means installation of Data Stream Designer will be skipped. Requires an existing SM Installation. y
Install SH? (y/n) Whether to install Stream Host. A non-Y/y input means installation of Stream Host will be skipped. y

2. Database Configuration

Prompt What It Means Default Value
Database Server SQL Server instance to connect to.

Examples:
• Local: localhost or hostname
• External: sql-server.yourcompany.com
• Custom port: hostname,1433

External SQL Server requirements:
• TCP/IP enabled on port 1433
• Mixed authentication mode enabled
• Firewall allows connections from Windows Server
hostname
Database Username The dedicated SQL Server user account created in prerequisites. xmadmin
Database Password The SQL Server password you want to set for the created SQL Account. (required - no default)
Database Protocol SQL Server connection protocol.
tcp = standard for network connections
np = named pipes (local only)
tcp
Trust SQL Server Certificate Whether to trust SQL Server certificate without validation.

Production: Select N (No) and configure Windows Server to trust the SQL Server certificate.
Non-Production: Select Y (Yes) for quick setup (less secure).

See Troubleshooting for certificate setup instructions.
N
SM Database Name Subscription Manager database name (always required as central registry). SM
AD Database Name App Designer database name.
Only asked if AD is selected.
AD
DS Database Name Data Stream Designer database name.
Only asked if DS is selected.
DS
Company Name Your company name for company admin account (no spaces).
Only asked if SM is selected.
Company
Company Admin First Name First name for company admin account.
Only asked if SM is selected.
System
Company Admin Last Name Last name for company admin account.
Only asked if SM is selected.
Administrator
Company Admin Email Email address for company admin account.
Only asked if SM is selected.
site.admin@yourcompany.com
Company Admin Password Password for company admin account.
Only asked if SM is selected.
(required - no default)
Site Admin Password Password for site admin account: admin@xmpro.onxmpro.com.
Only asked if SM is selected.
(required - no default)
Use separate SM database credentials? (y/n) Use different database credentials for SM.
Only asked if SM is selected.
n
Use separate AD database credentials? (y/n) Use different database credentials for AD.
Only asked if AD is selected.
n
Use separate DS database credentials? (y/n) Use different database credentials for DS.
Only asked if DS is selected.
n
Enable SMTP configuration? (y/n) Enable email for password resets, notifications, invitations.
Only asked if SM or AD is selected.
n
Tip

Username Format: Your company admin username will be automatically created as FirstName.LastName@CompanyName.onxmpro.com

Example: If Company Name = "Acme", First Name = "John", Last Name = "Smith", your username will be: John.Smith@Acme.onxmpro.com

Important

SMTP is required for password resets and user invitations. Without SMTP configured, users cannot reset forgotten passwords or receive invitation emails. Configure SMTP now or add it later by editing configuration files.

SMTP Configuration (if enabled)

If you choose to enable SMTP, you'll be prompted for these additional settings:

Prompt What It Means Default Value
SMTP Server SMTP server address (e.g., smtp.gmail.com). (required - no default)
SMTP Port SMTP port number (usually 587 for TLS or 465 for SSL). 587
Enable SSL? (y/n) Enable SSL/TLS encryption for SMTP connection. y
SMTP Username SMTP authentication username (e.g., notifications@yourcompany.com). (required - no default)
SMTP Password SMTP authentication password (or app password). (required - no default)
From Email Address Email address to use as sender for system notifications. (required - no default)

3. Product Configuration

Basic Configuration
Note

Hostname: Enter the DNS name users will use to access XMPro (e.g., xmpro.yourcompany.com). Use localhost for local-only access.

Internal Base URL: Only needed if using a reverse proxy or load balancer where internal server URLs differ from external URLs. Leave default for most installations.

Prompt What It Means Default Value
SM Hostname DNS name where SM will be accessed. localhost
SM Listen Port Port for SM web application. 5201
SM Internal Base URL (if different) (optional) Internal URL for SM (if different from external). https://hostname
AD Hostname DNS name where AD will be accessed. localhost
AD Listen Port Port for AD web application. 5202
AD Internal Base URL (if different) (optional) Internal URL for AD (if different from external). https://hostname:5202
DS Hostname DNS name where DS will be accessed. localhost
DS Listen Port Port for DS web application. 5203
DS Internal Base URL (if different) (optional) Internal URL for DS (if different from external). https://hostname:5203
SSL Certificates
Prompt What It Means Default Value
SM SSL Certificate Path Path to SSL certificate file for SM (e.g., C:\XMPro\Certificates\ssl.pfx).
Only asked if SM is selected.
(required - no default)
SM SSL Certificate Password Password for SM SSL certificate.
Only asked if SM is selected.
(required - no default)
Token Certificate Path Path to JWT signing certificate file (e.g., C:\XMPro\Certificates\sign.pfx).
Only asked if SM is selected.
(required - no default)
Token Certificate Password Password for JWT signing certificate.
Only asked if SM is selected.
(required - no default)
AD SSL Certificate Path Path to SSL certificate file for AD.
Only asked if AD is selected.
(required - no default)
AD SSL Certificate Password Password for AD SSL certificate.
Only asked if AD is selected.
(required - no default)
DS SSL Certificate Path Path to SSL certificate file for DS.
Only asked if DS is selected.
(required - no default)
DS SSL Certificate Password Password for DS SSL certificate.
Only asked if DS is selected.
(required - no default)
Stream Host Configuration (if SH selected)
Prompt What It Means Default Value
Stream Host Install Path Directory where Stream Host will be installed. C:\XMPro\StreamHost
Device Name Unique name for this Stream Host instance (will appear in Data Stream Designer). StreamHost-hostname
Data Stream Designer URL DS URL for Stream Host to connect to. https://hostname:5203
Note

Configuration is saved to C:\XMPro\ - you'll see these as defaults if you reinstall.

Installation Process

After answering the prompts, the installer will:

  1. Validate configuration - Tests SQL Server connection to the database and validates certificates

    If validation fails, you'll see the specific error and be prompted to:

    • (r) Retry - Re-enter your credentials
    • (s) Skip - Continue anyway (may cause installation to fail later)
  2. Migrate databases - Create and populate SM, AD, DS databases (takes 5-10 minutes)

  3. Download products - Get latest XMPro application packages

  4. Deploy to IIS - Create application pools and websites

  5. Install Stream Host - Set up Windows service (if selected)

  6. Configure applications - Apply settings and start services

Installation time: 15-30 minutes depending on download speed and server performance.

Note

The installer shows progress for each step.

Access XMPro

After installation completes, the installer displays your access URLs:

Subscription Manager (SM):

https://localhost:5201

App Designer (AD):

https://localhost:5202

Data Stream Designer (DS):

https://localhost:5203

Login Credentials

Account Type Username Password Purpose
Site Admin admin@xmpro.onxmpro.com Your site admin password Full system access, license management.
Company Admin FirstName.LastName@CompanyName.onxmpro.com
Example: John.Smith@Acme.onxmpro.com
Your company admin password Company operations, user management.
Tip

Cannot access?

  • Check Windows Firewall allows ports 5201, 5202, 5203
  • Verify IIS applications are running: Open IIS Manager → Application Pools
  • Check certificate trust: See Troubleshooting for certificate issues

What Gets Installed

IIS Websites

  • XMPro-SM: Subscription Manager (C:\inetpub\wwwroot\XMPro-SM)
  • XMPro-AD: App Designer (C:\inetpub\wwwroot\XMPro-AD)
  • XMPro-DS: Data Stream Designer (C:\inetpub\wwwroot\XMPro-DS)

Database Migration Results

  • SM Database: Identity, licensing, company data
  • AD Database: Applications, pages, dashboards
  • DS Database: Data streams, agents, collections

Windows Services

  • StreamHost-{hostname}: Data stream execution service

Configuration Files

  • C:\XMPro\Global-variables.json: Main configuration
  • C:\XMPro\Global-settings.json: Auto-generated settings (Product IDs, Collection secrets)
  • C:\XMPro\SM-variables.json: SM-specific settings
  • C:\XMPro\AD-variables.json: AD-specific settings
  • C:\XMPro\DS-variables.json: DS-specific settings
Note

Configuration files are preserved across reinstalls - you'll see your previous settings as defaults.

Warning

Security Best Practice: For production environments, move sensitive secrets (database passwords, certificate passwords, SMTP credentials) from these configuration files to encrypted secure storage solutions such as Azure Key Vault, HashiCorp Vault, or Windows Credential Manager. This reduces the risk of credential exposure.

Next Steps

After completing your Windows Server deployment, proceed to:

Post-deployment - Complete the setup and configuration of your XMPro environment.

Common Installation Scenarios

Reinstalling or Updating

To reinstall without losing configuration:

# Uses existing configuration from C:\XMPro\
.\install-xmpro-application.ps1 -SkipPrompts

Need Help?


Note

This installer uses native IIS deployment - not Docker containers. All XMPro applications run as standard IIS web applications with dedicated application pools.


Last modified: December 16, 2025