Installation

System Requirements

Web Server:

Database Server:

Installation Steps

Update

If you are on version 3.1 or later, take advantage of the automatic update feature in Generate. Directions can be found in the Generate User Guide.

Database Server

  1. Create an empty database called “generate” in SQL Server.

  2. Create a SQL login called “generate”.

  3. Using the Generate database backup file for this version (generate_x.x.bak where x.x is the version number), restore to the new empty “generate” database. This backup file was created from SQL Server 2012 R2. If you are using a newer version of SQL Server and encounter difficulty with this restore, a newer version of the backup file can be provided.

  4. Please note, the database contained within the backup file is called “generate-test”. Please make sure to restore to the “generate” database just created.

  5. Restore “db_owner” permissions to the “generate” user on the “generate” database.

Web Server

  1. Ensure IIS is installed.

  2. Ensure all pending Windows Updates are installed.

  3. Install .NET Core Runtime and Hosting Bundle (version 6.0). Installation files can be found here:

  4. Execute iisreset at the command line or restart the server to pick up changes to the system PATH.

  5. Install the Application Initialization Module for IIS.

You can find the Application Initialization module via the Server Manager under Server Roles -> Web Server (IIS) -> Web Server -> Application Development -> Application Initialization.

This is the only item that is required for this installation; any other items This is the only item that is required for this installation; any other items checked in the following screenshot are not necessary and may remain checked or unchecked depending on your environment.

The Web Application will need to be accessible independent of the Background Application. You can achieve this by one of the following methods:

  • Place both applications on the same server but assign different host names to each website.

  • Place both applications on the same server but assign different ports to each website.

  • Place both applications on the same server but assign different IP addresses to each website.

  • Place the web application and background applications on different servers.

Web Application

  1. Extract the contents of “generate.web_x.x.zip” into a temporary directory.

  2. Copy the “generate.web_x.x” folder into a location where you want your web application files to reside.

  3. In IIS, create a website called “generate.web” and point the physical path to the location of the web application files. Leave the application pool set to a new pool called “generate.web”. Adjust the IP Address, Port, and/or Host name as needed for your environment (as mentioned in the Web Server installation steps).

  1. Set the application pool used by the generate.web website to “No Managed Code.”

  1. The application pool used by the Generate website needs to be run under a service account that has access to the Active Directory service. Usually, this account is a domain service account on the network. This can be changed by accessing the Advanced Settings of the newly created application pool.

  1. From that dialog, change the Identity setting under the Process Model section to the domain service account.

  1. Make sure that the Application Pool Identity user account has permission to Create and Modify files in the Updates and Logs directories of the website folder.

  2. Ensure that Anonymous Authentication is "Enabled" on the website.

  1. Open the “appSettings.json” file located in the “Config” directory of the generate.web application folder.

To retain proper formatting, Notepad++ is recommended over Notepad or Wordpad.

  1. Ensure that the “AppSettings.Environment” value is set to “production.”

  2. Replace the values of the SQL Server Connection String keys with values appropriate for the installed environment.

{
“AppSettings”: {
“Environment”: “production”,
“ProvisionJobs”: false,
“ADDomain”: “ETSS.local”,
“ADLoginDomain”: “ETSS”,
“ADPort”:389,
“ADContainer”: “CN=Builtin,DC=ETSS,DC=local”,
“UserContainer”: “CN=Users,DC=ETSS,DC=local”,
“ReviewerGroupName”: “CN=Users,CN=Builtin,DC=ETSS,DC=local”,
“AdminGroupName”: “CN=Administrators,CN=Builtin,DC=ETSS,DC=local”,
“BackgroundUrl”: “http://192.168.1.2”,
"BackgroundAppPath": "D:\\Apps\\generate.background"
},
"Data": {
"AppDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;trustServerCertificate=true;MultipleActiveResultSets=true;",
"ODSDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;trustServerCertificate=true;MultipleActiveResultSets=true;",
"RDSDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;trustServerCertificate=true;MultipleActiveResultSets=true;Connect Timeout=300;"
}
}

The SQL Connection String should be the same for all three connections.

  1. If the connection string contains a backslash (\), it should be escaped with an additional backslash to retain proper JSON syntax.

Background Application

  1. Please ensure that the Application Initialization Module for IIS was installed as part of step 10 of the installation instructions.

  2. Extract contents of “generate.background_x.x.zip” into a temporary directory.

  3. Copy the “generate.background_x.x” folder into a location where you want your background application files to reside.

  4. In IIS, create a website called “generate.background” and physical path to the location of the background application files. Leave the application pool set to a new pool called “generate. background”. Adjust the IP Address, Port, and/or Host name as needed for your environment (as mentioned in the Web Server installation steps).

  1. Edit the “Advanced Settings” of the generate.background website and make sure the following property is set:

Preload Enabled = True

  1. Edit the “Advanced Settings” of the generate.background application pool and make sure the following properties are set:

.NET CLR Version = v4.0

Start Mode = AlwaysRunning

Idle Time-Out (minutes) = 0

  1. Make sure that the Application Pool Identity user account used by this website has permission to Create and Modify files in the Updates and Logs directories of the application folder.

  2. Ensure that Anonymous Authentication is "Enabled" on the website.

  3. Open the “appSettings.json” file located in the generate.background application folder.

To retain proper formatting, Notepad++ is recommended over Notepad or Wordpad.

  1. Ensure that the “AppSettings.Environment” value is set to “production.”

  2. Replace the values of the SQL Server Connection String keys with values appropriate for the installed environment.

{
"AppSettings": {
"Environment": "production",
"WebAppPath": "D:\\Apps\\generate.web"
},
"Data": {
"HangfireConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;",
"AppDbContextConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=3600;",
"ODSDbContextConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=300;",
"RDSDbContextConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=300;"
}
}

The SQL Connection String should be the same for all four connections.

  1. If the connection string contains a backslash (\), it should be escaped with an additional backslash to retain proper JSON syntax.

  2. Replace the value of the WebAppPath key with a value appropriate for the installed environment. This should be the physical path of the generate.web application files (specified in step 13 of the Web Application installation steps).

{
"AppSettings": {
"Environment": "production",
"WebAppPath": "D:\\Apps\\generate.web"
},
"Data": {
"HangfireConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;",
"AppDbContextConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=3600;",
"ODSDbContextConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=300;",
"RDSDbContextConnection": "Server=192.168.1.1;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=300;"
}
}
  1. Save and Close the “appSettings.json” file for generate.background.

  2. Open the “appSettings.json” file located in the “Config” directory of the generate.web application folder. Replace the value of the BackgroundUrl and BackgroundAppPath keys with values appropriate for the installed environment. If these keys do not exist in the .json file, please add them.

    • BackgroundUrl refers to the URL of the generate.background application.

    • BackgroundAppPath refers to the physical path of the generate.background application files (specified in step 25 of the Background Application installation steps).

{
"AppSettings": {
"Environment": "production", "ProvisionJobs": false, "ADDomain": "ETSS.local", "ADLoginDomain": "ETSS", "ADPort": "389",
"ADContainer": "CN=Builtin,DC=ETSS,DC=local", "UserContainer": "CN=Users,DC=ETSS,DC=local", "ReviewerGroupName": "CN=Users,CN=Builtin,DC=ETSS,DC=local",
"AdminGroupName": "CN=Administrators,CN=Builtin,DC=ETSS,DC=local", "BackgroundUrl": "http://192.168.1.2",
"BackgroundAppPath": "D:\\Apps\\generate.background"
},
"Data": {
"AppDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;",
"ODSDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;",
RDSDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=300;"
}
}

Permission Changes

For the Auto-Update functionality of Generate to work properly, you must ensure that the following permissions are set on the generate.web and generate.backgound directories:

  • The Application Pool Identity user account used by the generate.background site, must have Create and Modify permissions on the entire generate.web application directory.

  • The Application Pool Identity user account used by the generate.web site, must have Create and Modify permissions on the entire generate.background application directory.

Active Directory (AD)

Generate makes use of Active Directory (AD) for authentication and authorization. If an existing installation of AD is not available, Active Directory Lightweight Directory Services (AD LDS) may be installed. For those instructions, please see the AD LDS instructions in the Optional Installations section.

The AD settings for Generate are configured in the “appsettings.json” file located in the “Config” folder of the web application directory. Please see the following for the configuration settings.

{
"AppSettings": {
"Environment": "production",
"ProvisionJobs": false,
"ADDomain": "ETSS.local",
"ADLoginDomain": "ETSS",
"ADPort": "389",
"ADContainer": "CN=Builtin,DC=ETSS,DC=local",
"UserContainer": "CN=Users,DC=ETSS,DC=local",
"ReviewerGroupName": "CN=Users,CN=Builtin,DC=ETSS,DC=local",
"AdminGroupName": "CN=Administrators,CN=Builtin,DC=ETSS,DC=local", "BackgroundUrl": "http://192.168.1.2",
"BackgroundAppPath": "D:\\Apps\\generate.background"
},
"Data": {
"AppDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;",
"ODSDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;",
"RDSDbContextConnection": "Server=192.168.01.01;Database=generate;User ID=generate;Password=xxxxxxxxxxx;MultipleActiveResultSets=true;Connect Timeout=300;"
}
}

Generate makes use of two groups within Active Directory:

  1. Administrators

  2. Reviewers

Both AD roles must be configured in the AD instance and accessible by Generate. User access is provisioned via normal AD tools by adding or removing these roles to or from the desired users.

Final Steps

  1. Start up the web application in IIS.

  2. Open the website in a web browser to confirm that it loads properly.

Generate is optimized for Chrome, do not use Internet Explorer.

Last updated