Discovery Search Install & Upgrade Process
Purpose
Discovery Search uses Internet Information Services (IIS) for Windows® Server and Windows Authentication with Kerberos to authenticate a user from an internet browser. This guide outlines Shinydocs™ Discovery Search prerequisites, the process for installing with or without Kerberos usage, and upgrade steps.
Prerequisites
Hardware
We recommend load testing Discovery Search in a staging environment before promoting it to production, as small intricacies in an environment may have an impact on performance and end-user experience. After initial load testing, adjust your hardware based on the needs of the environment.
For example, if your CPU utilization on machines running Discovery Search is above 95% under load, you should upgrade the number of CPU cores allocated to the machine.
Performance for Discovery Search is primarily based on the performance of your Indexing Cluster. To help identify performance bottlenecks, Discovery Search can log the response times of fetching data from the index and delivering the results to the end user.
Recommendation for up to 1000 Users
CPU | 4 CPU Cores
|
Memory (RAM) | 8 GB |
Disk (storage) | Minimum 2 GB free disk space
|
Network | 1 gigabit |
Recommendation for scaling to over 1000 users
Discovery Search scales best for over 1000 users with the use of load balancing. We recommend setting up multiple Discovery Search instances behind a load balancer(s) and using your monitoring application of choice (for example, Windows Performance Monitor) to track resources.
For more information, see: https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/iis-best-practices/ba-p/1241577
Load Balancing
Discovery Search works with load balancers to reroute traffic based on usage. Load balancing can be done with Azure Load Balancer or Azure Application Gateway.
As Discovery Search is hosted in IIS, we recommend following your organization’s current policy on load balancing IIS web applications/sites. If your Discovery Search is load-balanced, we recommend setting up and configuring on one machine, then replicating to other machines to ensure a consistent experience.
Software
Discovery Search is an application that runs on Microsoft® Internet Information Services (IIS).
Component | Version |
---|---|
Internet Information Services (IIS) | Windows Server 2016: IIS Version 10.0 or above Windows Server 2019: IIS Version 10.0 or above Windows Server 2022: IIS Version 10.0 or above |
Microsoft .NET Framework | 4.7.2 or higher |
Shinydocs Discovery Server | Installation files obtained from Shinydocs |
IIS URL Rewrite 2.1* | 2.1 or higher For more information, see https://www.iis.net/downloads/microsoft/url-rewrite *Not required for Discovery Search 1.7.0.1 or later |
Internet Information Services (IIS) Features
Before installing Discovery search, please enable and install the following Windows Roles and Features. These can be enabled in Windows Server Manager > Add Roles and Features Wizard.
Role | Location |
---|---|
ASP | Web Server (IIS) > Web Server > Application Development Features |
ASP.NET | Web Server (IIS) > Web Server > Application Development Features |
.NET Extensibility 4.x | Web Server (IIS) > Web Server > Application Development Features |
Windows Authentication | Web Server (IIS) > Web Server > Security |
Additional Admin Panel Requirements
To ensure Admin Panel pages save successfully in Discovery Search, please ensure that IIS_IUSRS or the application pool user has write access to the following directories:
Configuration
Scripts
And the following file:
Web.config
Installing Discovery Search
Without Kerberos pass-through
Create and Configure Discovery Search Site
Extract shinydocs-discovery-search-<version>.zip to the directory where you want the application to reside
On the extracted folder, go to Properties>Security
Add IIS_IUSRS to the permissions of the folder and give full control
Ensure IIS_IUSRS or the Application Pool user has write access to the Scripts directory and the Web.config file
Open Internet Information Services (IIS) Manager
Create a new site
Name your site Discovery Search
Change the physical path to the extracted folder from step 1
Set the port you wish to use (80 is likely taken from the default IIS site)
Click on the site in the tree
Double-click Authentication under IIS
Disable Anonymous, and Basic Authentication, and Forms Authentication
Enable Windows Authentication and ASP.NET Impersonation
Within the IIS Manager, right-click on the Discovery Search site and click Explore to view the site folder structure
Access and edit the Web.config file
Change the
IndexServerUrl
key value to where the index is located and the port for it (default is 9200)[not required for versions 1.9 and later] In the
IndexName
key, add the indices you want to search, separated by a commaEnsure
SettingsEncryptionKey
is changed from “somebody change me” to a new value (for example, best practice is a minimum of 12 characters, including letters, numbers, and special characters)For clustered systems, ensure the new
SettingsEncryptionKey
value is the same for all systems within a clusterConfirm
ActiveDirectoryAdminGroup
is configuredConfigure
SettingsIndexName
to a value if desiredFor clustered systems, ensure the
SettingsIndexName
value is the same for all systems with a clusterSave changes
Open Windows command and restart IIS and run the following command:
iisreset /noforce
Connect Discovery Search to an index
Launch a browser and open the new Discovery Search site (for example, http://localhost:9200/admin)
Navigate to Roles
From the Default Role, click Edit
Select Sources Configuration
Click + Add source
Enter the name the content source in Name
In Indices, enter the name of the index that correspond to the specified content source in Discovery Search
Select the Language that the title will be displayed in
Enter the Title that will represent this index throughout the Discovery Search UI
Click + Add source to add another source index to this role
Once all sources are added, save changes
Refer to Configuring Roles for details on configuring user roles
Each role can have different values for the above settings, as well as variances in what sources are available to each role
With Kerberos pass-through
Kerberos is a computer-network authentication protocol that works based on tickets that allow nodes to communicate over a non-secure network, to prove their identity to one another in a secure manner.
For more information on how to set up your Windows Server environment to support Shinydocs Discovery Server with Kerberos pass-through (double-hop authentication), see Kerberos Authentication Setup.
Upgrading Discovery Search
Prerequisites
Download Discovery Search from Shinydocs Collab
Install in a new folder within the same directory as the prior installation
Set IIS to target the new folder
We recommend that the Web.config file from the previous version of Discovery Search is saved as a reference for the steps in the Configure web.config section of this guide.
Upgrading from 1.9.0 to 1.10.0 (or later)
Install Discovery Search by configuring web.config
Copy all settings from the 1.9.0 web.config file and paste in the designated area in the new web.config file, as suggested by the following comments:
XML<!-- For Migration, place all settings from a previous version of the web.config not already set above; below this line. They will be migrated into the index on first startup, and then can safely be removed from disk. --> <!-- For settings that were previously in the Configuration Directory, leave them there until after first startup, they will be migrated to the index. Once complete, you can remove them from disk -->
Update the following parameters in the new config file to match the value from the previous config file:
SettingsEncryptionKey
IndexServerUrl
SettingsIndexName
ActiveDirectoryAdminGroup
Typically, any current settings not already in the configuration file should be copied. However, if you didn’t, reasonable defaults would be applied which can then be configured through the admin pages.
Restart ISS, verify installation, and clean up temp files
Restart IIS
Launch a browser and open the new Discovery Search site (for example, http://localhost:9200/admin)
Once Discovery Search 1.10.0 or later is live and accessible, remove all temp files under C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\
Upgrading from 1.8.0.2 and earlier to 1.9.0 (or later)
Upgrading to Discovery Search 1.9.0 or later from an earlier version changes the structure of saved settings and introduces role-based access control (RBAC). These steps must be followed to ensure data and settings are migrated into the new Discovery Search structure.
Migrate configuration and template folders
All configurations and templates from your pre-1.9.0 installation of Discovery Search can be migrated as part of the upgrade process. The following steps must be completed before the first launch of the upgraded Discovery Search.
Migrate configuration folder
Copy the entire folder Configuration into Discovery Search 1.9 (or later) directory
Migrate templates folder
Within the older Discovery Search directory, navigate to the folder titled Scripts/templates
Copy the folder
Paste this folder into the new Discovery Search directory within /Scripts
Migrate custom logos
Within the older Discovery Search directory, navigate to the folder titled Content/Custom
Copy the folder
Paste the folder into the new Discovery Search directory within /Content
Overwrite when prompted
Migrate custom infographics
Within the older Discovery Search directory, navigate to the folder titled Content/About
Copy the folder
Paste the folder into the new Discovery Search directory within /Content
Overwrite when prompted
Migrate custom lists
Custom lists that have been created to support Advanced Search features must be either;
copied and re-saved in the same location within the new Discovery Search directory; or,
saved to a new location (In this case, the path to the file must be updated in your new configuration)
Configure web.config
Copy all settings from the 1.9.0 web.config file and paste in the designated area in the new web.config file, as suggested by the following comments:
XML<!-- For Migration, place all settings from a previous version of the web.config not already set above; below this line. They will be migrated into the index on first startup, and then can safely be removed from disk. --> <!-- For settings that were previously in the Configuration Directory, leave them there until after first startup, they will be migrated to the index. Once complete, you can remove them from disk -->
Update the following parameters in the new config file to match the value from the previous config file:
SettingsEncryptionKey
IndexServerUrl
SettingsIndexName
ActiveDirectoryAdminGroup
Typically, any current settings not already in the configuration file should be copied. However, if you didn’t, reasonable defaults would be applied which can then be configured through the admin pages.
Restart and verify the installation
Restart IIS
Launch a browser and open the new Discovery Search site (for example, http://localhost:9200/admin)
Connect Discovery Search to an index
Launch a browser and open the new Discovery Search site (for example, http://localhost:9200/admin)
Navigate to Roles
From the Default Role, click Edit
Select Sources Configuration
Click + Add source
Enter the name the content source in Name
In Indices, enter the name of the index that correspond to the specified content source in Discovery Search
Select the Language that the title will be displayed in
Enter the Title that will represent this index throughout the Discovery Search UI
Click + Add source to add another source index to this role
Once all sources are added, save changes
Refer to Configuring Roles for details on configuring user roles
Each role can have different values for the above settings, as well as variances in what sources are available to each role.
Verify and cleanup the installation
Confirm the settings and configurations for the Default Role in the Discovery Search Admin Panel, under Roles, migrated successfully, including:
Templates
Advanced Search
Filters
Source Groups
Loader messages
any other customized templates
Once Discovery Search is live and accessible, the following can be removed:
Configuration folder
Templates folder
All temp files under C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\
All web.config settings that were pasted between
- XML
<!-- For Migration, place all settings from a previous version of the web.config not already set above; below this line. They will be migrated into the index on first startup, and then can safely be removed from disk. --> <!-- For settings that were previously in the Configuration Directory, leave them there until after first startup, they will be migrated to the index. Once complete, you can remove them from disk -->