Deployment on the content delivery servers

The instructions below presume that you have a setup similar to the one in the Setting up the Sitecore Infrastructure article (see Sitecore infrastructure setup).

If your environment is different, read the steps carefully since you’ll need to tailor some of them to your environment.

Step 1: Copying the package to CDs

The Coveo for Sitecore installation package contains several files that are added to the Sitecore website directory.

  1. Locate the installation package you used for the content manager (see Releases and downloads).

  2. Unzip the Coveo for Sitecore <SITECORE_VERSION> <BUILD_NUMBER>.zip.

  3. Open the package.zip file.

  4. Copy the contents of the files folder to the <SITECORE_INSTANCE_ROOT> folder on each CD. The files folder mimics the folder structure found in the Sitecore website.

Note

For Azure Web App deployments, consider using a tool like the Kudo console for file and folder manipulations (for example, browsing, uploading/downloading, copying, editing, renaming, deleting).

Refer to this Microsoft blog article for more tips on tools designed for working with files in Azure.

Copying Coveo for Sitecore SXA files to CDs

If you’re using SXA, copy the Coveo for Sitecore SXA package files to your CDs the same way you did above.

  1. Locate the installation package you used for the content manager (see Releases and downloads).

  2. Unzip the appropriate Coveo for Sitecore SXA <SXA_VERSION(s)> <BUILD_NUMBER>.zip file, based on the version of Sitecore you’re using.

  3. Open the package.zip file.

  4. Copy the contents of the files folder to the <SITECORE_INSTANCE_ROOT> folder on each CD. The files folder mimics the folder structure found in the Sitecore website.

Step 2: Ensuring access to the encryption keys

Coveo for Sitecore stores the encryption keys in the Properties table of the core database. These keys must be the same on all the Sitecore instances to be able to decrypt the encrypted configuration elements.

If your CMs and CDs don’t share the same core database, make sure you have a database replication strategy in place.

Coveo for Sitecore stores the encryption keys in the Properties table of the core database (for Sitecore versions up to 9.0 inclusively) or the web database (for Sitecore versions 9.1 onwards). These encryption keys must be the same on all the Sitecore instances to be able to decrypt the encrypted configuration elements.

If your CMs and CDs don’t share the same core/web database, make sure you have a database replication strategy in place.

Step 3: Copying the configuration files

Since the index is shared between all the Sitecore instances, you need to configure all the additional Sitecore instances (CMs and CDs) to use the same configuration as the CM1 Sitecore instance.

Note

Copying the CM1 configuration files folders to your CDs will automatically disable indexing on your CDs. Whether you have a single CM and are copying the out-of-the-box configuration files or have multiple CMs and have patched the out-of-the-box configuration, your CM1 configuration disables indexing on the ContentDelivery role.

  1. In each additional Sitecore instance, delete the Coveo configuration files folder(s) located in the <SITECORE_INSTANCE_ROOT>\App_Config\Include\ and <SITECORE_INSTANCE_ROOT>\App_Config\Modules\ folders.

  2. Copy the configuration files folder(s) of the CM1 instance to each additional Sitecore instance.

    • Copy the Coveo base configuration files folder located in the <SITECORE_INSTANCE_ROOT>\App_Config\Modules\ folder of your CM1 instance. Paste it into the <SITECORE_INSTANCE_ROOT>\App_Config\Modules\ folder of your other instances.

    • Copy the Coveo custom configuration files folder located in the <SITECORE_INSTANCE_ROOT>\App_Config\Include\ folder of your CM1 instance. Paste it into the <SITECORE_INSTANCE_ROOT>\App_Config\Include\ folder of your other instances.

Step 4: Preventing CDs from trying to write to the Property Store database

In certain circumstances, Coveo for Sitecore may try to write LASTCRITICALINDEXINGEXCEPTION records to the Property Store. This will cause errors if you have set the Property Store database to read-only mode. To prevent these errors, you can set the Coveo for Sitecore CriticalExceptionsDisabled setting to true.

  1. In the <SITECORE_INSTANCE_ROOT>\App_Config\Include\Coveo\Coveo.SearchProvider.Custom.config file, try to locate the <settings> element, a child of the <sitecore> element. If the <settings> element is missing, add it.

    ...
      <sitecore coveo:require="!disabled">
        <settings>
        </settings>
    ...
  2. In the <settings> element, add the following <setting> child element:

    <setting role:require="ContentDelivery" name="Coveo.Framework.CriticalExceptionsDisabled" value="true" />
  3. Save your changes.

What’s next?

You’re now done with deploying Coveo for Sitecore, and you should test your connection to make sure everything is working (see Validate connectivity of the new hosts).