Other Configuration Settings in the Docker Compose Package

To change any configuration, you must first stop the Docker Compose containers. Make the settings changes, and then start the containers again.

Accessing the Managed License Server Through a Proxy Server

When using Managed Altair Units License, where the license manager server is hosted by Altair in the cloud, you have the option of configuring Panopticon to access the managed license server through a proxy. Part of the steps for making this configuration are the same regardless of whether you’re running Panopticon directly on the host operating system or running Panopticon in a Docker container. That part of the instructions can be found in the document Panopticon Real Time Installation and Reference Guide. The remaining steps, that are specific to running Panopticon in Docker, are discussed below:

  1. Stop the Panopticon Docker Compose package if it is running.
  2. Edit the panoviz container settings in the docker-compose.yaml file as follows:
    • Modify the environment section into:

      environment:
      - JAVA_TOOL_OPTIONS="--add-opens=java.base/java.nio=ALL-UNNAMED"
      - ALM_HHWU_PROXY_HOST="<proxy host>"
      - ALM_HHWU_PROXY_PORT="<proxy port>"

    • Modify the volumes section into:

      volumes:
      - type: bind
        source: ${PANO_MOUNT_DIR}/data/panoviz/appdata
        target: /etc/panopticon/appdata
      - type: bind
        source: ${PANO_MOUNT_DIR}/config/panoviz/server.xml
        target: /usr/local/tomcat/conf/server.xml
      - type: bind
        source: ${PANO_MOUNT_DIR}/logs/panoviz
        target: /usr/local/tomcat/logs
      - type: bind
        source: <ALMutil config files folder path>
        target: /usr/local/altair

  3. Modify the license properties in the /pano-mount/data/panoviz/appdata/Panopticon.properties file:

    license.hwu.hosted.authorization.password=
    license.hwu.hosted.authorization.token=<YOUR_TOKEN_HERE>
    license.hwu.hosted.authorization.username=
    license.hwu.hosted=true
    license.hwu.uri=<proxy port>@<proxy host>
    license.hwu.use_client_timezone=true
    license.mode=HWU

  4. Restart the Docker Compose package.

 

Configuring the Sender Account for Email Reports and Email Alerts

By setting email account details for a sender account, it will be possible to send reports, data exports, and alert messages via email. In the pano-mount/data/panoviz/appdata/Panopticon.properties file, configure the following properties:

email.address=
email.host=
email.password=
email.port=
email.security.mode=NONE
email.username=

You will likely not be allowed to use your workplace email account as a sender account configured in Panopticon. For testing purposes, you can optionally use a third-party email service. There are several email services to choose from, which have entry level plans free of charge. Below is a brief instruction for how you can use Sendgrid:

  1. Create a free account on Sendgrid.com.
  2. Do a Single Sender Authentication by specifying an email address that you own.

    You will get an email with a link to click to prove that the email address is yours. The purpose of this is for Sendgrid to know that you will not expose someone else’s email address as the sender.

  3. Under Email API > Integration Guide, choose SMTP Relay.
  4. Enter a descriptive name for a new secret API key and press Create Key.
  5. Copy the secret API key. This will be used as the email account settings password in Panopticon.
  6. Stop the Docker Compose containers. In the Panopticon.properties file, enter the values given by Sendgrid:
    • For the port, enter 465.
    • For the security mode, enter SSL.
  7. Start the Docker Compose containers.

    You will now be able to email PDFs, data exports, dashboard images, graph images, and alert notifications from Panopticon. The email server that is used for sending is provided by Sendgrid, and the Single Sender email address that you provided will be presented as the sending address.

    NOTE: Since you are not actually sending email from the Single Sender email address that you authenticated, but only presenting it as the sending email address, this can be detected by the recipients’ email server. The receiving email server could therefore consider the message to be suspicious and treat it like spam or malicious email. The way to solve this is to add certain CNAME records to the DNS service of your domain, as specified by Sendgrid, and possibly also an SPF record.

 

Enabling REST API Swagger and Client JavaScript API Documentation

Panopticon has a collection of REST endpoints. The documentation of the REST endpoints is disabled by default, but can be enabled by setting the property documentation.enabled=true in the pano-mount/data/panoviz/appdata/Panopticon.properties file.

This will give you access to the following:

 

Adding Custom Map Tile Providers

Panopticon has a visualization part called Map Plot, which uses map tiles. You can add map tile services by editing the pano-mount/data/panoviz/appdata/default-settings/tileproviders.json file.

For additional details, see Panopticon documentation.

 

Adding Packages to R

The Rserve container of the Panopticon Docker Compose package comes with several installed packages. Additional packages are also installed based on what has been added to the pano-mount/config/rserve/init_R_env_override.R file.

You can also source your own functions by placing .R files inside this folder:

pano-mount/config/rserve/rserve_extensions

Then add a line like this in the init_R_env_override.R file.

source("/etc/panopticon/rserve_extensions/yourfilename.R")

Alternatively, you can place the source statement at the beginning of your R code in each Panopticon data table, and thereby source different files with different tables. In either case, after sourcing your own function definitions, you can call your functions directly into your Panopticon data tables without any further importing or attaching.

 

Adding Packages to Python

The Python container of the Panopticon Docker Compose package comes with several installed modules. Additional modules are also installed based on what has been added to the pano-mount/config/python/requirements.txt file.

You can import any module into your Python scripts used in Panopticon by specifying the file name without the .py extension, for example, with a file “my_python_functions.py”, you do:

import my_python_functions

 

Adding JDBC Drivers

  1. Stop the containers then place the JDBC driver jars in the pano-mount/data/panoviz/appdata/jar_extensions folder.
  2. Restart the containers.

    The Panopticon container log will include lines like these:

    /etc/panopticon/appdata/jar_extensions exists.
    Final JAR_EXT_FOLDER=/etc/panopticon/appdata/jar_extensions
    Copying all jars from extensions folder done

 

Configuring SSL

The Docker Compose package exposes the Tomcat server.xml file in the path /pano-mount/config/panoviz/server.xml. 

  1. Configuration of SSL is done in this file, by adding a block like the one below:

    <Connector
      protocol="org.apache.coyote.http11.Http11NioProtocol"
      port="8443"
      maxThreads="150"
      <SSLEnabled="true">
      <SSLHostConfig>
        <Certificate
        certificateKeystoreFile="conf/keystore.jks"
        certificateKeystorePassword="kspass"
        type="RSA"/>
      </SSLHostConfig>
    </Connector>

  2. In addition, the following configuration changes must be made in the docker-compose.yml file:

     

    Configuration Property Sample Values

    ports

    • 8080:8080

    • 8443:8443

    type:bind

    • source: ${PANO_MOUNT_DIR}/config/panoviz/keystore.jks

    • target: /usr/local/tomcat/conf/keystore.jks

     

  3. Generate a keystore.jks file (instructions and tools exist on the web).
  4. Place the keystore.jks file in the config folder path shown above.
  5. Run the docker compose up command to build your container.

 

(c) 2013-2024 Altair Engineering Inc. All Rights Reserved.

Intellectual Property Rights Notice | Technical Support