Setup Sitecore Lighthouse Demo in a simple way (On Azure VM and using Sitecore Version 10.0)

  • July 19, 2021
  • Application Development Management

Do you want to learn or start with Sitecore SXA (Sitecore Experience Accelerator) ????

If yes, the best way to move forward yourself is to explore the Lighthouse demo.

Lighthouse Demo is built using Sitecore Experience Accelerator (SXA) on Sitecore Experience Platform (XP) following the Helix principles.

Lighthouse Demo can only be deployed inside Docker Containers.

The idea behind this post is to share my real experience on issues/challenges faced while setting up this lighthouse demo project locally based on the setup guide shared here- https://github.com/Sitecore/Sitecore.Demo.Platform/blob/main/docs/Usage.md

Worth sharing, I started setting the lighthouse demo on my office laptop which is on a corporate network. I failed to do it because Docker needs nested virtualization and didn’t get that level of access where I can freely do anything or having full control on office laptop so I decided to use an Azure VM.

I started with a basic Azure VM and again I failed to do it because it doesn’t support the nested virtualization. So finally I used an Azure VM which supports nested virtualization. (In my case I used D16_v3)

Prerequisites

  • Windows 1809 or higher. Version 1909 is preferred.
  • At least 16 Gb of memory. 32 Gb or more is preferred.
  • A valid Sitecore 10 license file located at <<LicensePath>>license.xml (<<LicensePath>> — this can be replaced with the directory where your license.xml file is located)
  • The latest Docker Desktop.

Docker Readiness:

  • Make sure you are running Windows containers.
  • Ensure the Windows Docker engine experimental features are enabled (to allow the Linux smtp container to run at the same time as the Windows containers)
  • Go to Docker Desktop taskbar icon, right click on it and click on Settings.
  • Go to Docker Engine and add “experimental” : true, this is how it will look after you add the key.
  • Click on “Apply & Restart” button to restart your Docker Engine.
  • Also- ensure the value of the “dns” key is set to at least [“8.8.8.8”].
  • Click on “Apply & Restart” button to restart your Docker Engine.

Now we are ready to proceed with the installation.

  • Clone or download as zip the Sitecore.Demo.Platform repository locally
    1. https: git clone https://github.com/Sitecore/Sitecore.Demo.Platform.git OR
    2. Download it as a zip and extract it
  • Open Powershell as administrator and navigate to the folder where you cloned the repo or extracted it, in my case it was C:\Projects\Sitecore.Demo.Platform
  • Creation of certificates and initialization of the environment file
    • Run .init.ps1 -InitEnv -LicenseXmlPath C:licenselicense.xml -AdminPassword b
    • You can change the admin password and the license.xml file path as per your local configuration.
  • Pull the latest Docker images by running command  docker-compose pull
  • Now next step is to start the demo containers, but before that we need to stop IIS using command iisreset /stop

This is required each time when you start the demo containers as the Traefik container is using the same port (443) as IIS.

Now-start the demo containers- docker-compose up -d

  • You might face issues that container is unhealthy. This might be because of lot of reasons like CPU utilization , disk usage etc. …

Please try to run the same compose up command again (If CPU utilization is 100% always and containers not coming up then please try to upgrade

azure VM)

  • Also, while docker compose up command I faced an error related to solr “cannot start service solr” and i found there was one of my solr instance was running on 8984 port, when i stopped the service and ran the docker compose up command again then everything was fine
  • Make sure that following ports are not being used by any process- 443, 8079, 8081, 8984, and 14330 as the default Sitecore container configuration uses these specific ports.

Issues

You might see below issues like Site cannot be reached or License file is not valid. This means you container might not be fully up and running or the init container is not fully initialized.

Try to run command to check logs of init container “docker-compose logs -f init”

If this errors out with some code then please try to run docker compose up command again and again and monitor logs for init container.

This gives the detailed log for init container like if CM or CD site is up or not etc…

In my case it took usually around 30 mins to get the init container to fully running. (Init container tries to perform some tasks light maintaining cache of all pages and building indexes etc… so please give it a time to warmup)

 

  • Once all the containers are up and running, Browse to https://cd.lighthouse.localhost and you should see the Lighthouse landing page with a full-width carousel.
  • Once you are done you can just stop the container – docker-compose stop
  • If you would like to change the host names (or put any global DNS ) of CM and CD sites you can do it via the .env file.

Thanks to Sitecore team.

References:

https://github.com/Sitecore/Sitecore.Demo.Platform

https://github.com/Sitecore/Sitecore.Demo.Platform/blob/main/docs/Usage.md