Set up an on-premises license server (Icarus)¶
Icarus is SciTools' license server that you host on your own network. Normally Understand
verifies licenses against SciTools' cloud server (Helios, at licensing.scitools.com); Icarus is a
drop-in replacement for closed labs and other environments that can't reach it. It speaks the same
HTTPS/REST protocol, so as far as Understand is concerned there is no difference — clients just
point at your server instead.
Icarus hands out seats keyed to the requesting username, whatever machine the user is on, and denies requests once the seat cap or concurrent-use limit is reached. A web GUI shows who is using what and lets an administrator deregister users, free stuck seats, and pull usage reports.
Requirements¶
- Set up must be done by a user with admin privileges (also required to register the service).
- Two incoming ports open — 443 and 80 by default (both configurable).
- A 64-bit OS: Windows 7+, macOS 10.12+, RHEL/CentOS 7.4+, or Ubuntu 16.04+.
The -service feature doesn't cover RHEL/CentOS 8 or macOS
The service library Icarus uses can't register a service on RHEL/CentOS 8 or macOS. Icarus
itself runs fine there when launched with sudo/as root — arrange your own startup script or
system service to launch it at boot.
Install and license the server¶
- Locate
icarus.zip— it ships inside every Understand install kit (in the same directory as theundexecutable) — and extract it on the server machine. It is also available from licensing.scitools.com/download-all (log in, then switch the product selector to Icarus). -
In a terminal running as administrator, from the extracted directory:
icarus -service install icarus -service start(The other service commands are
stop,restart, anduninstall.) -
Open a browser to the server (
https://localhostfrom the machine itself). The page shows an InstanceId. - Send the InstanceId to SciTools or your regional distributor; you'll receive an
icarus.datlicense file in return. - Upload
icarus.datthrough the web GUI (Add Icarus License). Seats are served immediately.
Point Understand at your server¶
On each client (or once in a deployed image):
und -setlicenseserver <hostname-or-IP>
Add :<port> if you changed the license port from its default 443 (e.g.
und -setlicenseserver license01:9000). The UNDERSTAND_LICENSE_SERVER environment variable does
the same per-run, which is handy on CI runners — see
Licensing from the command line, the
und licensing reference, and
Licensing without internet. Understand uses the system proxy,
so a proxy rule may be needed for clients to reach Icarus.
Configuration: settings.dat¶
On first launch Icarus writes settings.dat next to its logs:
| OS | Location |
|---|---|
| Windows | C:\Windows\System32\config\systemprofile\AppData\Roaming\SciTools\Icarus |
| Linux | /.config/SciTools/Icarus (under root's home when run as a service) |
| macOS | /Library/Application Support/SciTools/Icarus |
| Key | Default | What it does |
|---|---|---|
Port |
443 | HTTPS port Understand connects to for licenses. May equal SecureWebport. |
SecureWebport |
443 | HTTPS port for the web GUI. May equal Port. |
EnableWebport |
0 | Enables (1) the unencrypted web GUI on Webport — for users who can't bypass the self-signed-certificate warning. |
Webport |
80 | Unencrypted web-GUI port (GUI only — Understand can't license through it). |
AllowTLS12 |
0 | Accept TLS 1.2 in addition to TLS 1.3 (see below). |
AuthName / UserHash |
— | Optional web-GUI login username (plain text, or SHA-256 hash). Use one, not both. |
AuthPass / AuthHash |
— | Optional web-GUI login password (plain text, or SHA-256 hash). Use one, not both. |
InstanceId, MachineId, Hash |
— | Generated identifiers — never edit these, Icarus stops working. |
Every change requires an Icarus restart. Setting both an auth name and password makes the web GUI
prompt for a login; use it over SecureWebport, since on Webport the credentials travel in plain
text. Icarus generates a self-signed cert.pem/key.pem pair — browsers will warn until you bypass
the warning or replace the pair with your own certificate and key (same filenames).
TLS compatibility¶
Icarus requires TLS 1.3 by default. If a client can't negotiate it — most commonly Understand
on macOS, whose TLS backend only offers TLS 1.2 — set AllowTLS12 1 in settings.dat and
restart. Understand builds 1078 and newer speak TLS 1.3 and work with every Icarus version; if
you're running much older Understand builds, contact support for the compatibility matrix (builds
older than 934 can't use Icarus at all).
Manage users and seats¶
In the web GUI, the In Use view is a live snapshot of available seats and active users; the Users view lists everyone who has ever connected, where you can deregister a user or free a seat that's stuck in use. Users are added automatically on first connection. To restrict who may take a seat, upload an access list — a text file with one alphanumeric username per line — via Add User Whitelist. Generate Report produces a signed usage report for a date range (Validate Report checks one hasn't been altered), and daily per-user usage accumulates in a downloadable CSV. For the cloud-licensing equivalent of this workflow, see Manage a team — seats and usage.
Logs and troubleshooting¶
Icarus writes three logs beside settings.dat: err.log (errors) and event.log (registrations,
start/stop — the two to attach to a support ticket), plus web.log (access log). Like Understand,
Icarus follows a live-service model — if you hit an issue, try the latest build first. Two known
gotchas: upgrading across a minor version (e.g. 1.1.x → 1.2.x) usually needs a new icarus.dat
from your distributor, and Nessus vulnerability scans have been known to terminate the Icarus
service unexpectedly. Questions: [email protected].