[All-in-One] Sitecore 9.0 (multiple versions) + Solr with SSL through Docker

Previously, I had an article about installing Sitecore 9.0 update 1 – OnPremise (XP0) on local dev environment (a.k.a Standalone server). Since Sitecore has released Sitecore 9.0 update 2 recently, It’s time to update my repo (mostly config files) to work with the new release. However, I want to be able to install the previous versions: Sitecore 9.0 update 1 and even Initial Release; therefore, I create a new repo that can accomplish this need.

As far as we know, before installing the new instance of Sitecore (from 9.0), it requires installing Solr running SSL first. From the very first post, I’ve used Docker to run Solr within SSL; and I’m going to keep this approach. But in the new repo, the script of installing Solr-Docker has been moved to another repo for the purpose of supporting 2 scenarios of Solr installation, first is install and configure SSL as normal; later is through Docker. I’ll describe the difference in below.

The installation process is separated into 3 steps: Configuration for Windows, Install Solr-Docker, and Install the instance of Sitecore.

Let start with Pre-requisites

  1. Windows 10
    • IIS 10
    • .NET Framework 4.6.2
  2. Microsoft SQL Server 2016 SP 1
  3. Microsoft PowerShell® version 5.0 or later

Configuration for Windows

Add “IIS APPPOOL\DefaultAppPool” to the following groups

  1. Performance Log Users


  2. Performance Monitor Users


Install Solr-Docker

If you don’t want to use Docker, ignore this step and use this post. Then, use the path of Solr’s data folder under the place which Solr was installed. For example, C:\Solr-662\Server\Solr

Otherwise, use the following steps to install Solr-Docker

  1. Clone my Solr-Docker repo from Github to your local (i.e. E:\github\solr-docker)
  2. Follow the instruction in README.md
  3. After installed, just verify the folder that stores the Solr’s data at – E:\github\solr-docker\SolrData
    Notes: the path – “E:\github\solr-docker\SolrData will be used in the next step
  4. Verify the Solr server work correctly at the link – https://localhost:8983

Install the instance of Sitecore

Let install the instance of Sitecore update 2 as an example. Before starting, let assumes some configuration’s values below (feel free to change to match with your environment)

  • The path of Solr’s data folder: E:\github\solr-docker\SolrData (or if you don’t use Docker, it’s “C:\Solr-662\Server\Solr” instead)
  • The instance name: habitat
  • The SQL Server address: localhost
  • The SQL Admin User: sa
  • The IIS’s wwwroot folder: D:\Inetpub\wwwroot

After installed successfully, the instance can be accessed by the Url – https://habitat.dev.local

Getting Started

  1. Clone the repo sitecore-9-instance-manager from mine at Github to your local (i.e. E:\github\sitecore-9-instance-manager)
  2. Download the corresponding Sitecore package from https://dev.sitecore.net. For our case, it is Sitecore Update 2
    • Download the “Package for XP Single” (the file after downloaded is Sitecore 9.0.2 rev. 180604 (WDP XP0 packages).zip)
  3. Follow the README.md as an instruction. I’ll summarize in below
    • Extract the file Sitecore 9.0.2 rev. 180604 (WDP XP0 packages).zip; and copy the following packages to E:\github\sitecore-9-instance-manager/build/assets
      • Sitecore 9.0.2 rev. 180604 (OnPrem)_single.scwdp.zip
      • Sitecore 9.0.2 rev. 180604 (OnPrem)_xp0xconnect.scwdp.zip
    • Also, copy your Sitecore’s license file to E:\github\sitecore-9-instance-manager/build/assets
    • Open the Window PowerShell as Administrator at E:\github\sitecore-9-instance-manager
    • Execute the sc-install-xp0.ps1 within the configuration above and waiting to complete
.\sc-install-xp0.ps1 -scversion "9.0.2" -instanceName "habitat" `
-sqlServer "localhost" `
-sqlAdminUser "sa" `
-sqlAdminPassword "[The-password-for-sa]" `
-solrRoot "E:\\github\\sitecore\\solr-docker\\SolrData" `
-scwebroot "D:\Inetpub\wwwroot"

Verify your instance

Open your browser, access the Url – https://habitat.dev.local


How to install other Sitecore versions?

Just simply change the 2 arguments from the above command, they are:

  • -scversion
  • -instanceName

For instance:

To install the new instance “SC901” in Sitecore 9.0 update 1, use the script

.\sc-install-xp0.ps1 -scversion "9.0.1" -instanceName "SC901" `
-sqlServer "localhost" `
-sqlAdminUser "sa" `
-sqlAdminPassword "[The-password-for-sa]" `
-solrRoot "E:\\github\\sitecore\\solr-docker\\SolrData" `
-scwebroot "D:\Inetpub\wwwroot"

To install the new instance “SC90” in Sitecore 9.0 Initial Release, use the script

.\sc-install-xp0.ps1 -scversion "9.0.0" -instanceName "SC90" `
-sqlServer "localhost" `
-sqlAdminUser "sa" `
-sqlAdminPassword "[The-password-for-sa]" `
-solrRoot "E:\\github\\sitecore\\solr-docker\\SolrData" `
-scwebroot "D:\Inetpub\wwwroot"

How to un-install the specific instance?

Just simply follow the instruction at here.

Or execute the script directly (remember to change the values of arguments)

.\sc-uninstall-xp0.ps1 -scversion "9.0.1" -instanceName "habitat" 
-sqlServer "localhost" 
-sqlAdminUser "sa" 
-sqlAdminPassword "[The-password-for-sa]" 
-scwebroot "[IIS-wwwroot]"


Just imagine that, while working with Sitecore (from version 9.0), it’s a need of installing several Sitecore’s instance for some kinds of purpose. For instance

  • Working: Sitecore 9.0 Initial Release
  • Research SXA: Sitecore 9.0 update 1 (due to Sitecore.HabitatHome.Content is built on this version)
  • Research Habitat v1.6: Sitecore 9.0 update 2

I hope my way will help us  can do this rapidly, simply.

It’s inspired by the Habitat.

Leave a Reply

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

WordPress.com Logo

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

Google photo

You are commenting using your Google 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