A Simplified Guide to Installing Sitecore Horizon 10

Who doesn't want things simple? Well, installing Horizon isn't as simple as the graphical interface reintroduced to Sitecore installs and still requires Sitecore Installation Framework (SIF), and is still pretty easy, but I'll make it easier.


Prerequisites

Ok let's get started with, prerequisites. Yeah I know, they're not automatically installed for you. I'm getting spoiled. 

First, head on over to your Control Panel and ensure that WebSocket Protocol is installed for IIS. 



Next, make sure your instance of Sitecore Identity is installed and running correctly, and you're not actually seeing the Sitecore fallback login page. This would be the correct version:



The last prerequisite is, for this version at least, Core 2.1 is installed on your server.

Installing Horizon

First things first. Grab the module at the Sitecore Horizon download page and extract it on your server. 

Open the InstallHorizon.ps1 file and configure the key variables like you see below.  You only need to edit lines 2, 5, 8, 11, 12, 14.  Note that the Horizon instance name is a subdomain of the main site, which allows it to work with the main site.

1    param (
2      [string]$horizonInstanceName = "horizon.sc10demosc.dev.local",
3      [string]$horizonPhysicalPath = "C:\inetpub\wwwroot\$horizonInstanceName",
4      [string]$horizonAppUrl = "https://$horizonInstanceName",
5      [string]$sitecoreCmInstanceName = "sc10demosc.dev.local",
6      [string]$sitecoreCmInstanceUrl = "https://$sitecoreCmInstanceName",
7      [string]$sitecoreCmInstansePath = "C:\inetpub\wwwroot\$sitecoreCmInstanceName",
8      [string]$identityServerPoolName = "sc10demoidentityserver.dev.local",
9      [string]$identityServerUrl = "https://$identityServerPoolName",
10     [string]$identityServerPhysicalPath = "C:\inetpub\wwwroot\$identityServerPoolName",
11     [string]$licensePath = "C:\inetpub\wwwroot\sc10demosc.dev.local\App_Data\license.xml",
12     [bool]$enableContentHub = $false,
13     [ValidateSet("XP", "XM")]
14     [string]$topology = "XP"
15    )
16    Import-Module "$PSScriptRoot\InstallerModules.psm1" -Force
17    InstallHorizonHost -horizonInstanceName $horizonInstanceName `
18      -sitecoreInstanceUrl $sitecoreCmInstanceUrl `
19      -licensePath $licensePath `
20      -sitecoreInstansePath $sitecoreCmInstansePath `
21      -identityServerPoolName $identityServerPoolName `
22      -horizonPhysicalPath $horizonPhysicalPath `
23      -identityServerUrl $identityServerUrl `
24      -identityServerPhysicalPath $identityServerPhysicalPath `
25      -horizonAppUrl $horizonAppUrl `
26      -enableContentHub $enableContentHub `
27      -topology $topology

Run the script, and it should only take about 5 minutes to complete.



Once finished your Sitecore instance is going to restart, so go ahead and log in to see your Horizon option. Exciting!




She really should get a new bag. I mean, it's been years. Honestly.


Potential Bug on First Run

I've seen cases where the first launch of Horizon is empty, with no context on the User and Sites are empty, but a session reset fixed all that.