Before starting please refer to the Requirements page to make sure that every requirement is met.


Prerequisites

Network

  • DNS Alias
  • SSL certificate matching the DNS Alias. The certificate must be installed and available in IIS.
  • Firewall configuration to make indyco explorer available to clients. By default the standard https port is 443.
  • Database access if the database is not installed on the same machine as indyco Explorer

Software requirements

  • ASP.NET Core 6.0 Hosting Bundle
  • IIS, version 8 or higher. Required roles below:
    • IIS\Web Management Tools\IIS Management Console
    • IIS\World Wide Web Services\Application Development Features\.NET Extensibility 4.x
    • IIS\World Wide Web Services\Application Development Features\ASP.NET 4.x
    • IIS\World Wide Web Services\Application Development Features\ISAPI Extensions
    • IIS\World Wide Web Services\Application Development Features\ISAPI Filters
    • IIS\World Wide Web Services\Common HTTP Features\Default Document
    • IIS\World Wide Web Services\Common HTTP Features\Directory Browsing
    • IIS\World Wide Web Services\Common HTTP Features\HTTP Errors
    • IIS\World Wide Web Services\Common HTTP Features\Static Content
    • IIS\World Wide Web Services\Health and Diagnostics\HTTP Logging
    • IIS\World Wide Web Services\Performance Features\Static Content Compression
    • IIS\World Wide Web Services\Performance Features\Dynamic Content Compression
  • IIS URL Rewrite


Installation

Before starting, it's best to delete the default IIS site so that the installer is able to configure the new IIS site automatically.

Proceed with the installation by running the official indyco Explorer installer. The installer will guide you through the installation by asking for some parameters.


Configuration

For the initial configuration of indyco we will be editing the appsettings.Production.json file available in the installation directory.

Database configuration

To configure the database connection strings add to the configuration file the following sections inside the Indyco section:

   "MongoDbParameters": {
        "ConnectionString": "mongodb://username:password@host:port/?uuidRepresentation=Standard",
        "DatabaseName": "IndycoExplorer"
      },
  "RepositoryMongoDbParameters": {
        "ConnectionString": "mongodb://username:password@host:port/?uuidRepresentation=Standard",
        "DatabaseName": "IndycoExplorerRepository"
      }

Secrets configuration

To configure the secrets used to sign the authentication tokens add to the configuration file the following section inside the Indyco section:

    "TokenAuthentication": {
      "SecretKey": "indycosecretSK!123456",
      "HeaderSecretKey": "indycosecretHSK!123456",
      "Issuer": "indyco.example.com"
    }

Be sure to change these values from the default ones!


Environment configuration

To configure the environment add to the configuration file the following properties inside the Environment section:

  "Environment": {
    "EnvironmentType": "Production",
    "Company": "Company name"
  }

You can update the EnvironmentType to reflect the type of environment between Production, Test, Quality, Development.


License configuration

To configure the license copy the license.xml file in the installation directory.


Bindings configuration

From the IIS Manager console select the new site created by the installer and customize the bindings to suit your needs. By default the website is available on port 80 but you can customize it. Usually it's best to configure an hostname and to enable SSL for secure connections (read more).


App_Data Folder configuration

Create the folder App_Data inside the installation directory and grant full permissions to the IIS_IUSRS group. This allows the application to write logs and temp data to this folder.


Enable dynamic content compression (optional)

Enabling dynamic content compression allows the server to reduce network usage (by compressing json responses) at the cost of higher CPU utilization.


  1. Turn on Dynamic content compression in the site configuration
  2. Configure dynamic content compression for json responses by adding the following snippet to the web.config file inside the installation directory
    <system.webServer>
        <httpCompression>
            <dynamicTypes>
                <add mimeType="application/json" enabled="true" />
            </dynamicTypes>
        </httpCompression>
    </system.webServer>


Example configuration


A complete example of the appsettings.Production.json could be like this:

{
  "Environment": {
    "EnvironmentType": "Production",
    "Company": "Company name"
  },
  "Indyco": {
    "TokenAuthentication": {
      "SecretKey": "indycosecretSK!123456",
      "HeaderSecretKey": "indycosecretHSK!123456",
      "Issuer": "indyco.example.com"
    },
  "MongoDbParameters": {
        "ConnectionString": "mongodb://localhost/?uuidRepresentation=Standard",
        "DatabaseName": "IndycoExplorer"
      },
  "RepositoryMongoDbParameters": {
        "ConnectionString": "mongodb://localhost/?uuidRepresentation=Standard",
        "DatabaseName": "IndycoExplorerRepository"
      }
  }
}


For further customization please refer to the configuration section of the documentation.

Verify installation

To verify the correct installation of indyco Explorer simply try to reach one of the bindings you configured. You should see a login interface and should be able to login using the default admin credentials (username: admin password: indyco).


Be sure to change the admin password!


In case of errors please check the application logs inside the App_Data folder inside the installation directory.