Skip to main content

Universal GUI container

Introduction to the Universal GUI container

The container for the Universal GUI can be configured with environment variables, allowing for seamless version upgrades without the need for manual modification of the config.json file. Additionally, an existing configuration and additional assets to customize the progressive web app and CSS can be mounted in the container if necessary.

Pull the image

Before the image can be pulled, you need to log in to the Thinkwise Container Registry. See registry authentication for more information.

You can pull the image with the following command:

docker pull registry.thinkwisesoftware.com/public/universal

Supported tags

warning

In production environments, you would want to pin a specific tag or digest of the image, to prevent unwanted changes during the day and have more control over when a new version is made available.

TagDescription
latestThe most recent image
2023The most recent image of the specified year
2023.1The most recent image of the specified release
2023.1.10, 2023.1.11Specific version
tip

The container images are tagged with the same version number as the releases in TCP. Any future releases will be tagged accordingly.

How to use this image

The image is based on Nginx and publishes port 80 by default.

Use the following command to create and run the latest version of the container:

docker run \
-p 80:80 \
-e SERVICE_URL='https://localhost/indicium/iam/iam' \
registry.thinkwisesoftware.com/public/universal

Environment variables

VariableDescription
SERVICE_URLURL to the Indicium service.
DEFAULT_APPLICATIONLoad only a specific application from IAM
DEFAULT_PLATFORMSpecify a number to select the default platform, Universal UI, Windows, or Web
LOGIN_OPTIONS_DISABLEDPut this on true to disable the login options
LOGIN_OPTIONS_HIDDENPut this on true to hide the login options
DEBUG_MODEPut this on true to enable debug mode
CUSTOM_JSONApply custom minified JSON to the container. Any configuration applied with this will override any of the above specified settings. For more information about the available options, see the configuration settings

Example configuration:

docker run \
-p 80:80 \
-e SERVICE_URL='https://localhost/indicium/iam/iam' \
-e DEFAULT_PLATFORM='3' \
-e LOGIN_OPTIONS_DISABLED='true' \
registry.thinkwisesoftware.com/public/universal

Custom assets

By binding a volume or storage to the path /etc/universal/assets within the container, additional assets can be added to the directory of the Universal GUI. The settings of the Progressive Web App and/or the customization of the CSS can be done by providing the manifest.json or custom.css file(s), together with all the required images used in these files.

The container will link the manifest.json and/or custom.css to the directory of the Universal GUI and copy all additional directories and images recursively.

For more information about custom CSS in the Universal GUI: Themes - Custom CSS

warning

The container will only copy the following extensions: BMP, GIF, ICO, JPEG, JPG, PNG and SVG.

docker run \
-p 80:80 \
-v path/to/directory:/etc/universal/assets \
registry.thinkwisesoftware.com/public/universal

Using an existing configuration

It is considered best practice to configure the container with variables, this makes it more flexible across different environments.

Configuration file

warning

The configuration file that gets mounted needs to exist. If not, this will not work.

To mount the configuration inside the container:

docker run \
-v /path/to/config.json:/etc/universal/config.json \
registry.thinkwisesoftware.com/public/universal

Directory with configuration file

note

If the specified directory is empty, the configuration will be created inside of it.

To mount the directory with the configuration in the container:

docker run \
-v /path/to/directory:/etc/universal \
registry.thinkwisesoftware.com/public/universal

Was this article helpful?