Configure the Application

This section describes the steps that are necessary to deploy the application.

Obtain Resources

The resources you need to deploy the Discover application are hosted in a public GitHub repository. Go to https://github.com/opentext-idol/discover-deploy/releases and download a zip of the discover-deploy repository to the machine that will host the application.

The repository contains the following resources.

Resources Description
config-fixed Configuration files containing properties that usually do not need to be changed.
config Configuration files containing properties that you can customize before deploying the application, such as the host name and port of your IDOL License Server and the ports that you want to use for the components of the Discover application.
config/https/api A server certificate and private key to use for setting up SSL for the Discover API. Replace the placeholder files in this directory with the certificate and key that you want to use.
config/https/auth A server certificate and private key to use for setting up SSL for the authentication server. Replace the placeholder files in this directory with the certificate and key that you want to use.
config/https/ui A server certificate and private key to use for setting up SSL for the Discover front-end. Replace the placeholder files in this directory with the certificate and key that you want to use.
data/entity/custom.yaml A YAML configuration file that you can use to extend the default Entity schema and customize the graph database to meet your needs.
docker-compose Docker Compose files that are used to deploy the application.
deploy.py A Python script that is used to deploy, start, and stop the application.

Configure the Deployment

In the config directory, modify the configuration files as necessary. The following list describes some common changes that you might want to consider.

  • In config/base.env, set the host name and port of your IDOL License Server using the properties ISOL_LICENSE_SERVER_HOST and ISOL_LICENSE_SERVER_PORT.
  • In config/base.env, set a new value for ISOL_AUTH_SERVICE_API_CLIENT_SECRET. You can set this to any value but it must be considered secret.
  • In config/base.env, you might want to change the host name, port number, and path for various components. For example, the default settings for the Keycloak server admin UI, the Discover API and Discover front-end UI are as follows:

    ISOL_AUTH_SERVICE_EXTERNAL_HOST=localhost
    ISOL_AUTH_SERVICE_EXTERNAL_PORT=8010
    ISOL_AUTH_SERVICE_EXTERNAL_PATH=/
    
    ISOL_API_SERVICE_EXTERNAL_HOST=localhost
    ISOL_API_SERVICE_EXTERNAL_PORT=8060
    ISOL_API_SERVICE_EXTERNAL_PATH=/
    
    DISCOVER_UI_EXTERNAL_HOST=localhost
    DISCOVER_UI_EXTERNAL_PORT=8090
    DISCOVER_UI_EXTERNAL_PATH=/

    In a production system users are unlikely to access the application using the hostname localhost. The configuration above would not work correctly if a user accessed the application from a web browser on a different machine. Instead, you might prefer to use the host name of the server that is hosting the docker containers:

    ISOL_AUTH_SERVICE_EXTERNAL_HOST=discover-server
    ISOL_AUTH_SERVICE_EXTERNAL_PORT=8010
    ISOL_AUTH_SERVICE_EXTERNAL_PATH=/
    
    ISOL_API_SERVICE_EXTERNAL_HOST=discover-server
    ISOL_API_SERVICE_EXTERNAL_PORT=8060
    ISOL_API_SERVICE_EXTERNAL_PATH=/
    
    DISCOVER_UI_EXTERNAL_HOST=discover-server
    DISCOVER_UI_EXTERNAL_PORT=8090
    DISCOVER_UI_EXTERNAL_PATH=/

    At a later stage, you might decide that you want to serve all of these components on the standard HTTPS port (443). You could accomplish this by setting up a reverse proxy and changing the settings like this:

    ISOL_AUTH_SERVICE_EXTERNAL_HOST=discover-server
    ISOL_AUTH_SERVICE_EXTERNAL_PORT=443
    ISOL_AUTH_SERVICE_EXTERNAL_PATH=/auth
    
    ISOL_API_SERVICE_EXTERNAL_HOST=discover-server
    ISOL_API_SERVICE_EXTERNAL_PORT=443
    ISOL_API_SERVICE_EXTERNAL_PATH=/api/
    
    DISCOVER_UI_EXTERNAL_HOST=discover-server
    DISCOVER_UI_EXTERNAL_PORT=443
    DISCOVER_UI_EXTERNAL_PATH=/ui/

Configure SSL

The user-facing components - the Discover front-end application, API, and authentication server - are configured by default to accept connections only over HTTPS. In the folder config/https are some placeholder files that you should replace with the actual private keys and certificates that you want to use.