Installing Sitecore Horizon 9.3 in a custom location

As some you might be aware of Horizon is the next-generation editor in Sitecore Experience Platform. Horizon includes the following features:

  • The page editor, which you use to create and edit web pages. As you edit a page, you can see how it will appear on different devices.
  • Simulator mode, which you use to preview web pages as they will appear on different dates and on different devices.
  • Insights view, which you use to see analytics for your web pages.

Installation of Horizon is quite simple and it’s a matter of 4-5 mins to get Horizon up and running on top of your running Sitecore 9.3/10 instance.

Sitecore Horizon gets installed by default to “c:\inetpub\wwwroot\…” location, but how about if you want to install Horizon to custom location and not to the default one?, consider a case where you have you Sitecore installed into a custom location and you want to follow same for Horizon as well.

I was checking all Horizon configurations to see if there is a way around to install it to a custom location the way I did for Sitecore 9.3 and while I was checking this I found an article by Gullentops here- where he has explained the changes that are required to make it happen.

So, basically the changes are required on three files:

Configs/sitecore-ah.json– Here we need to update AuthoringHost.Site.PhysicalPath variable to the path as required.

"AuthoringHost.Site.PhysicalPath": "[joinpath(environment('SystemDrive'), 'inetpub', 'wwwroot', variable('AuthoringHostSiteName'))]" 

Configs/sitecore-cm.json– There are two changes required here:

  1. Change the parameter Site.PhysicalPath (line #15) to SitePhysicalPath
  2. Change the parameter name in the definition of Site.PhysicalPath variable (line #46) – the variable can keep the “.” in the name
"Site.PhysicalPath": {
			"Type": "string",
			"DefaultValue": ""
"Site.PhysicalPath": "[if(equal(parameter('Site.PhysicalPath'), ''), variable('Site.PhysicalPath.Default'), parameter('Site.PhysicalPath'))]",

and the last change on parameters.ps1 file:

  1. Add SitePhysicalPath = “site-cm-path” to the $sitecoreCM parameters
# Configure Sitecore
$sitecoreCM = @{
    Path                      = Join-Path $configsRoot sitecore-cm.json
    SiteName                  = $ContentManagementInstanceName
    AuthoringHostSiteName     = $authoringHostName
    WebProtocol               = $ContentManagementWebProtocol
    HorizonFeatureIntegrationPackageFolder = Join-Path $PSScriptRoot "resources"
    HorizonFeatureIntegrationPackageName = 'Horizon.FeatureIntegration'
	SitePhysicalPath          = "D:\Deploy\"

2. In $sitecoreIS parameters section, set the AuthoringHostPhysicalPath to the path you want to set for your authoring site- in my case it was set to


# Configure Sitecore Identity Server
$sitecoreIS = @{
    Path                       = Join-Path $configsRoot sitecore-is.json
    AuthoringHostSiteName      = $authoringHostName
    AuthoringHostPhysicalPath  = "D:\Deploy\"
    # Please fill in physical path to Sitecore IdentityServer. Example: c:\inetpub\wwwroot\horizon-IdentityServer
    SitecoreIdentityServerPhysicalPath = $SitecoreIdentityServerPhysicalPath
    SitecoreIdentityServerPoolName = $SitecoreIdentityServerPoolName
    SitecoreIdentityServerSiteName = $SitecoreIdentityServerSiteName

Fill in the other details as required in the file and you should be good to go.

For Sitecore Horizon version 10- we don’t need to do this hack- we just need to update $horizonPhysicalPath parameter to the location we want to install horizon and you are good, no more parameter updates.

Hope this helps.

Happy learning 🙂

Quick References:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s