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
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.
Tag | Description |
---|---|
latest | The most recent image |
2023 | The most recent image of the specified year |
2023.1 | The most recent image of the specified release |
2023.1.10 , 2023.1.11 | Specific version |
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:
- Linux or macOS
- Windows
docker run \
-p 80:80 \
-e SERVICE_URL='https://localhost/indicium/iam/iam' \
registry.thinkwisesoftware.com/public/universal
docker run `
-p 80:80 `
-e SERVICE_URL='https://localhost/indicium/iam/iam' `
registry.thinkwisesoftware.com/public/universal
Environment variables
Variable | Description |
---|---|
SERVICE_URL | URL to the Indicium service. |
DEFAULT_APPLICATION | Load only a specific application from IAM |
DEFAULT_PLATFORM | Specify a number to select the default platform, Universal UI, Windows, or Web |
LOGIN_OPTIONS_DISABLED | Put this on true to disable the login options |
LOGIN_OPTIONS_HIDDEN | Put this on true to hide the login options |
DEBUG_MODE | Put this on true to enable debug mode |
CUSTOM_JSON | Apply 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:
- Environment variables
- Custom JSON
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
docker run \
-p 80:80 \
-e CUSTOM_JSON='{"defaultPlatform":3,"loginOptionsDisabled":true,"serviceUrl":"https://localhost/indicium/iam/iam"}' \
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
The container will only copy the following extensions: BMP, GIF, ICO, JPEG, JPG, PNG and SVG.
- Linux or macOS
- Windows
docker run \
-p 80:80 \
-v path/to/directory:/etc/universal/assets \
registry.thinkwisesoftware.com/public/universal
docker run `
-p 80:80 `
-v C:\\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
The configuration file that gets mounted needs to exist. If not, this will not work.
To mount the configuration inside the container:
- Linux or macOS
- Windows
docker run \
-v /path/to/config.json:/etc/universal/config.json \
registry.thinkwisesoftware.com/public/universal
docker run `
-v C:\\path\\to\\config.json:/etc/universal/config.json `
registry.thinkwisesoftware.com/public/universal
Directory with configuration file
If the specified directory is empty, the configuration will be created inside of it.
To mount the directory with the configuration in the container:
- Linux or macOS
- Windows
docker run \
-v /path/to/directory:/etc/universal \
registry.thinkwisesoftware.com/public/universal
docker run `
-v C:\\path\\to\\directory:/etc/universal `
registry.thinkwisesoftware.com/public/universal