Airgapped Deployment
Introduction
Deploy XMPro in restricted environments without internet access using offline installation packages. This approach is essential for high-security facilities, air-gapped networks, or environments with strict compliance requirements that prohibit external connectivity. All installation files are pre-downloaded and transferred to the isolated environment before deployment.
Note
For general installation concepts and detailed configuration options, see the main installation guide.
Prerequisites
Each server in your airgapped deployment must meet the standard prerequisites. See Prerequisites for complete requirements including:
- Windows Server 2022
- IIS with required features
- SQL Server 2022 with Mixed Mode authentication
- Certificates (signing and SSL)
- .NET Framework and .NET 8 Hosting Bundle
Download Required Files
From a machine with internet access, download these files:
Installer scripts:
{{INSTALL_URL_PREFIX}}{{VERSION}}/install-xmpro-application.ps1{{INSTALL_URL_PREFIX}}{{VERSION}}/manifest.json- (Optional)
{{INSTALL_URL_PREFIX}}{{VERSION}}/install-xmpro-prerequisites.ps1
Product packages:
- Open
manifest.jsonin a text editor - Download all URLs listed in the manifest (includes SM.zip, AD.zip, DS.zip, StreamHost.zip, and other dependencies)
- Open
Optional: Automated Download Script
Use this PowerShell script to automatically download all files from manifest.json:
# Download manifest.json first
$manifestUrl = "{{INSTALL_URL_PREFIX}}{{VERSION}}/manifest.json"
$outputDir = "C:\XMPro-Install"
New-Item -Path $outputDir -ItemType Directory -Force | Out-Null
curl.exe -L -o "$outputDir\manifest.json" $manifestUrl --silent --show-error
# Read manifest and download all files
$manifest = Get-Content "$outputDir\manifest.json" | ConvertFrom-Json
foreach ($file in $manifest.PSObject.Properties) {
$url = $file.Value
$filename = Split-Path $url -Leaf
Write-Host "Downloading $filename..."
curl.exe -L -o "$outputDir\$filename" $url --silent --show-error
}
Write-Host "All files downloaded to $outputDir"
Installation Steps
Step 1: Prepare Installation Directory
On the Windows Server (offline), create a directory and place all files together:
C:\XMPro-Install\
├── install-xmpro-application.ps1
├── manifest.json
├── SM-v{{VERSION}}.zip
├── AD-v{{VERSION}}.zip
├── DS-v{{VERSION}}.zip
├── SM.Database.Console-v{{VERSION}}.exe
├── AD.Database.Console-v{{VERSION}}.exe
├── DS.Database.Console-v{{VERSION}}.exe
└── StreamHost-win-x64-v{{VERSION}}.exe
Step 2: Run Installer
cd C:\XMPro-Install
powershell.exe -ExecutionPolicy Bypass -File install-xmpro-application.ps1
What happens:
- Installer detects local product zip files in same directory
- Skips download step (uses local files instead)
- Proceeds with normal installation process
- No internet connection required
Tip
How it works: The installer looks for manifest.json and product files in the same directory as install-xmpro-application.ps1. If found, it uses them directly instead of downloading.
Next Steps
After completing your Airgapped deployment, proceed to:
Post-deployment - Complete the setup and configuration of your XMPro environment.
Need Help?
- Main Installation Guide - Standard deployment process
- Multi-Server Deployment - Distributed deployments
- Troubleshooting Guide - Fix common issues
Last modified: December 16, 2025