These instructions describe how to install and configure the NV5 Geospatial License Server service for use with NV5 Geospatial Solutions, Inc. products.

See the following:

System Requirements

Minimum hardware requirements:

  • Disk: 500 MB
  • RAM: 4 GB
  • CPU: 2 GHz - 2 Cores

The License Server requires an Intel/AMD 64-bit processor and a Linux distribution. In general, the License Server should successfully function on the Linux systems supported by MongoDB Community Server 6.0 and Node.js 18. These include:

  • RedHat/CentOS 8.0 and 9.0
  • SUSE 12 and 15
  • Debian 10 and 11
  • Ubuntu 20.04 and 22.04

Note: Installing the License Server on a Docker container is not supported.

For a complete list of the platforms MongoDB Community Server supports, see https://www.mongodb.com/docs/v6.0/administration/production-notes/.

It is recommended that the machine be dedicated to the License Server. Reducing the amount of additional software installed on the machine (particularly server software) will help ensure there are no version conflicts of dependency packages. In particular, other applications that use Node.js or MongoDB Community Server might introduce version incompatibilities that could be difficult to troubleshoot, and could lead to system instability. The License Server does not require a particularly powerful machine to run; however, keeping the software running in relative isolation will minimize the chances of incompatibilities.

The License Server must be installed on a machine that is network-accessible to the client machines that will perform licensing requests. The License Server communicates using a secure and/or non-secure port. These ports may need to be appropriately configured on firewalls or other network devices to allow the required connectivity.

The License Server uses MongoDB Community Server 6.0, which requires a processor with the AVX instruction set. If you are attempting to install on a virtual machine on a processor that supports AVX instructions, you may need to update the virtual machine configuration to enable them. See the MongoDB Production Notes, https://www.mongodb.com/docs/v6.0/administration/production-notes/, for additional information.

License Administrator User Interface Requirements

The following are required to use the License Administrator user interface to manage your License Server licenses:

  • Debian-based Linux with the libwebkit2gtk-4.0-37 and libgtk-3-0 packages installed.

  • Fedora-based Linux with the webkit2gtk and gtk3 packages installed.

Alternately, a command line licensing command can also be used to manage your License Server licenses if a desktop user interface is not available for your server. For details, see the Licensing Utility section.

Root or Sudo Privileges

You need root or sudo privileges to perform the steps in this document.

Note: A graphical session is required to run the License Administrator user interface, which may be invoked during the License Server installation. Some Linux distributions disable this when the sudo command is invoked (i.e., the required DISPLAY environment variable is not set). If this is the case for your Linux distribution, use an alternative to sudo (such as direct root login or su), or the sudo configuration should be updated appropriately.

Firewall Configuration

The License Server is configured to listen to ports 4080 (HTTP) and 40443 (HTTPS) concurrently by default. If a firewall is deployed on the License Server, it will be necessary to configure the firewall to allow external listening connections by the License Server computer on TCP ports 4080 and 40443.

If needed, consult your local system or network administrator for assistance in configuring your server's firewall.

Correct System Time and Date

To allow proper usage monitoring and logging, the system time and date of the License Server computer should be configured to accurately reflect the current time and date.

Install the License Server Service

The License Server requires MongoDB Community Server on the machine. The installer will perform a check to determine if it is already installed. If it is not, you will be prompted to allow installing MongoDB before proceeding to License Server installation. So that MongoDB can be installed for you, you will need to have a package manager on the machine, such as apt-get or yum. If a package manager is not available, MongoDB will need to be installed manually.

  1. Uncompress the setup-license_serverxx-linux.gz archive file that was downloaded to your computer, then unpack the file:

    gunzip setup-license_serverxx-linux.tgz
    tar -xf setup-license_serverxx-linux.tar
  2. Change to the directory that has the installer script:

    cd license_serverxx
  3. Start the installer:

    ./install_linux.sh
  4. If prompted, allow installing MongoDB Community Server.
  5. At the "Enter the name of a user account to run the service" prompt, enter one of the following:

    • daemon, a generic user ID available in most Linux distributions that can be used to run background services.
    • A specific user ID you have created for the purpose of running this license server.
    • Your own account name.
  6. When installation is complete, activate the license by entering Yes at the prompt to open the License Administrator.

    Optionally, if you have a license.dat file, you can skip the activation process and place the file in the INSTALL_DIR/license_server/license directory.

    You can also activate licenses from the command line using the Licensing utility described in this document.

License Administrator

You will be prompted to open the License Administrator after installation is complete. To start the License Administrator at other times (e.g., to deactivate a license), run the license_administrator.sh file located in the INSTALL_DIR/license_server/bin directory.

Use the License Administrator to activate, deactivate, and view ENVI and IDL licenses on the License Server.

Upgrade Licenses

If you are upgrading your software version and a new license is required, you can use Upgrade License on a machine with Internet access to automatically get an upgraded license.

To update a license, perform these steps:

  1. Click the Upgrade License button.

  2. The License Administrator checks the licensing portal to determine if a new license is available to you.

    If any parts of your license are eligible for upgrade, you will see a list of upgradable Activation Codes. Select the licenses you want to upgrade and click Upgrade License.

  3. Click Close to close the dialog.

Migrate Licenses

This version of the License Server uses a new licensing engine. If you were previously hosting licenses on the legacy licensing engine, you can migrate the licenses from the old licensing engine to the new one using the following:

  1. When the License Administrator appears, click the Migrate License button.

  2. The License Administrator will show the URL for the legacy License Server.

  3. Click the Query button to view the license features on the legacy License Server. Ensure that you will be migrating what you need to the new licensing engine.

  4. Click Migrate. When the migration is complete, the message Migration Successful appears.

  5. Click the View License button to see the migrated licenses.

Activate Licenses

To activate licenses, click the Activate License button.

  1. Enter (or paste) the activation code that was provided to you in Activation Code column.

  2. By default, a license is activated with a count of 1. You can optionally specify a different count (if available for that license) in the Count column.

    You cannot change the count after the license is added. To change the count, you will need to deactivate the code, then re-add it with the new count.

  3. Click the Activate button below the table.

The License Administrator table refreshes to show the activated license.

View Licenses

You can view all activated licenses for the License Server when you click the View License button. Details for each license include the license feature, version, expiration date, and license count.

Deactivate Licenses

To deactivate licenses, click the Deactivate License button.

  • To deactivate all licenses, select the check box at the top of the table, then click the Deactivate button below the table.

  • To deactivate a specific license, select the check box next to the activation code, then click the Deactivate button.

Connect a Client to the License Server

Clients can connect to the License Server using the License Administrator tool that is installed with their ENVI and IDL software.

To open the License Administrator tool on the client:

  • Windows: From the Start menu, select the ENVI-IDL License Administrator under the shortcut group for the product installation. Administrator privileges are required.
  • Linux: From a terminal window, launch the envi_idl_license_admin command from the INSTALL_DIR/envixx/idlxx/bin/ directory for ENVI installations, or INSTALL_DIR/idlxx/bin/ for IDL installations. Root or sudo permissions are required.

    Note: A graphical session is required to run the License Administrator user interface. Some Linux distributions disable this when the sudo command is invoked (i.e., the required DISPLAY environment variable is not set). If this is the case for your Linux distribution, use an alternative to sudo (such as direct root login or su), or the sudo configuration should be updated appropriately.

  • Mac: From a Finder window, double-click the LicenseAdminstrator.app icon located under the INSTALL_DIR/envixx/idlxx directory for ENVI installations, or INSTALL_DIR/idlxx for IDL installations. Administrator privileges are required.

This version of the License Server uses a new licensing engine. If you are hosting licenses that were migrated from the legacy licensing engine to the new licensing engine, clients will need to confirm reconnecting to the localhost.

To connect to the License Server:

  1. Click the Use License Server button.
  2. The default port number is 4080. To use a secure port (HTTPS), enable the Secure check box. The port number will change to 40443, the default for a secure port.
  3. Enter the name or IP address of the server. If the License Server is located on the same machine where IDL or ENVI are located, use localhost.
  4. Click the Connect button.
  5. Click Close to close the dialog.

Connect a Client to a License Server Using a Text File

If the ENVI or IDL product on the client machine was installed silently, or if it is running the product headless, the client can alternatively set up a text file on the machine to connect to licenses on a License Server.

To create the text file:

  1. Create a plain text file that contains a reference to the License Server URL. Format the text as follows:

    http://license-server-hostname-or-IP-address:4080

    For example:

    http://myserver.mycompany.com:4080
  2. Save the file as lic_server.dat.

  3. Copy the file to the client's license subdirectory located under the INSTALL_DIR. The file should have read privileges for all product users.

Examples using the default installation directory on the client:

Windows: C:\Program Files\INSTALL_DIR\license\lic_server.dat

Linux: /usr/local/INSTALL_DIR/license/lic_server.dat

Mac: /Applications/INSTALL_DIR/license/lic_server.dat

To remove the client's connection to the License Server, delete the lic_server.dat file.

Licensing Utility

Use the licensing command-line utility to do the following from the command line:

  • Activate one or more licenses (activate)
  • Check for license upgrades (check upgrades)
  • Upgrade one or more licenses (upgrade)
  • Migrate licenses from the legacy licensing engine to the new licensing engine (migrate)
  • Deactivate one or more licenses (deactivate)
  • Print the binding keys for the license (get bindings)
  • Print the license information (show license)

To use the Licensing utility, open a terminal window and change to the INSTALL_DIR/license_server/bin directory.

Activate Licenses

To activate a license (requires Internet access):

./licensing activate <activation_code>

where <activation code> is in the format 0000-0000-0000-0000. Submitting the activation code contacts the licensing portal with machine binding information. The portal returns a license, which will then be installed.

  • You can call activate multiple times to add more codes to the existing license, without needing to deactivate.

  • By default, a license is activated with a count of 1. You can optionally specify a different count by using a slash /. For example:

    ./licensing activate <activation_code>/2
  • You cannot change the count after the license is added (the same code cannot be activated multiple times). To change the count, you must deactivate the code, then re-add it with the new count.

  • You can also enter multiple activation codes of varying counts. For example:

    ./licensing activate <activation_code1> <activation_code2>/5

    where <activation_code1> will be activated with the default count of 1 and <activation_code2> will be activated with a count of 5.

Check for License Upgrades

To check if a new license is available (requires Internet access):

./licensing check upgrades

If any parts of your license are eligible for upgrade, a list of upgradable Activation Codes will be returned. Use the upgrade subcommand to activate them.

Upgrade Licenses

To get the available license upgrades (requires Internet access):

./licensing upgrade

Migrate Licenses

This version of the License Server uses a new licensing engine. If you were previously hosting licenses on the legacy licensing engine, you can migrate them to the new licensing engine using the following:

To migrate licenses using the default localhost URL:

./licensing migrate

The following option can be used to specify a different localhost:

--url URL

Deactivate Licenses

Deactivate licenses before uninstalling the License Server from the machine. To deactivate a license (requires Internet access):

  • To deactivate all licenses:

    ./licensing deactivate
  • To deactivate a specific license:

    ./licensing deactivate <activation_code>

    where <activation_code> is in the format 0000-0000-0000-0000.

Print Binding Keys

To print the machine's key binding to the screen:

./licensing get bindings

Print License Details

To print license details to the screen:

./licensing show license

Other Options with the License Utility

The following options can also be used with the licensing command-line utility:

  • To use a proxy server:

    --proxy_server: The proxy server host name or IP address.

    --proxy_port: The proxy server TCP port.

    --proxy_username: The proxy server username.

    --proxy_password: The proxy server password.

  • The Licensing utility automatically detects the licensing folder in the folder hierarchy, but if the folder is in a different location, override with the following:

    --path: The license file path.

  • The following options are available for logging:

    --log: To specify the name of the log file.

    --loglevel: To specify the level of logging information. The default level is INFO, but for troubleshooting purposes, you may be instructed by NV5 Geospatial Solutions Technical Support to change this setting.

    --verbose: To enable more verbose logging.

  • To specify a file to direct all output to:

    --output

    If not specified, output is written to sdtout.

License Server Configuration

Default configuration settings for the License Server are set in the INSTALL_DIR/license_server/config/production.json file.

You will need to restart the License Server service after you edit the License Server configuration file.

{
  "http": {
    "port": 4080
  },
  "https": {
    "port": 40443,
    "key": "certs/key.pem",
    "cert": "certs/cert.pem"
  },
  "license": {
    "path": "license"
  },
  "logging": {
    "daysToKeep": 30,
    "level": "info",
    "path": "logs"
    "allowDownloads": true
  },
  "dashboard": {
    "show": true
  }
}

http

The port the License Server listens to for HTTP. The default is 4080. HTTP and HTTPS ports are supported concurrently; however, if you will not use both ports, you can remove the unused one from the configuration file.

https

The port the License Server listens to for HTTPS. The default is 40443. HTTPS allows the License Server to encrypt all communications to and from clients accessing the server. It is recommended for security best practices for all deployed systems. HTTP and HTTPS ports are supported concurrently; however, if you will not use both ports, you can remove the unused one from the configuration file.

The key and certificate should be generated and signed by your organization, but you can use a self-signed certificate. Default self-signed key.pem and cert.pem certificates are located under the certs folder in the INSTALL_DIR. You can also replace the default certificates provided by NV5 Geospatial Solutions with ones purchased from and signed by a Certificate Authority.

Note: Web browsers and other command-line clients will warn about self-signed certificates, and you will have to bypass their security features to use a self-signed certificate.

If you are using certificates that were purchased from and signed by a Certificate Authority, be sure to copy the key.pem and cert.pem files to the certs folder before you restart the License Server service.

license

The relative or absolute path of the license folder that contains the License Server's license.dat file.

logging

License server log configuration settings include the following:

  • How many daysToKeep log files before purging them.
  • The level of data to include in the log. The default method is info. Change the logging level only if you are instructed to do so by NV5 Geospatial Solutions Technical Support. The logging levels are:

    • fatal: Logs when the application encountered an event or entered a state in which one of the essential functions is no longer working.

    • error: Logs issues that prevent one or more functions in the application from working properly.

    • warn: Logs when something unexpected occurred in the application.

    • info: Logs information about application activity that occurs.

    • debug: Logs information that may be needed for diagnosing issues and troubleshooting. It is less detailed than trace logging.

    • trace: A verbose log of what is occurring in the application and the 3rd-party applications it uses.

  • The path where the logs will be stored.
  • Set allowDownloads to true to enable viewing and downloading the log files from the Dashboard. If set to false, viewing and downloading log files from the Dashboard will be disabled.

If setting a path, ensure that the user who is running the License Server has write permissions for the directory.

The license_server.log file is located in INSTALL_DIR/license_server/logs.

dashboard

The show setting enables or disables showing the Administrator Dashboard. If set to false, the License Server's client users will see an 'HTTP 404 Not Found' message when they select View Licenses > Show Dashboard in the License Administrator.

Start/Stop/Restart the Service

Open a terminal window and use the following commands to start or stop the service:

sudo INSTALL_DIR/node/bin/node INSTALL_DIR/service start
 
sudo INSTALL_DIR/node/bin/node INSTALL_DIR/service stop
 
sudo INSTALL_DIR/node/bin/node INSTALL_DIR/service restart

Uninstall the License Server Service

You can use a script to uninstall the License Server, or you can uninstall it manually.

To use the uninstall script:

An uninstall script is located in INSTALL_DIR/license_server/scripts/uninstall_linux.sh. The script deactivates licenses on the server, stops the server, and removes the License Server.

To run the script, enter the following at the command prompt:

 sudo <install_location>/scripts/uninstall_linux.sh

To manually uninstall:

  1. Navigate to the License Server installation directory (INSTALL_DIR/license_server).
  2. If the license was activated with a code, deactivate the license (skip this step if using a license.dat file):

    sudo bin/licensing deactivate

  3. Stop the service:

    sudo ./service.js remove

  4. Remove the License Server:

  5. sudo rm -rf install_location

Contact Us

If you need assistance, visit our website to find worldwide contact information for technical support.