License server
In order to share floating licenses between multiple workstations, a license server needs to be up and running, and reachable for all machines in the network.
Setup
Download latest release from releases. The download contains directories for Windows, Linux and macOS.
Extract the contents of the folder of the relevant OS to a permanent location of your machine that will run the server, e.g.:
nglicensemanager-v1.0.18.zip/windows
> C:\Users\yourself\apps\ngskintools-license-server
. The contents of the new folder should similar to:
nglicensemanager
- the executable to runconfig.ini
- base configuration for the serverlicenses
- empty folder for future license files
Launch the server; you should see output similar to:
2021/02/07 18:33:20 *****************************************
2021/02/07 18:33:20 * ngLicenseManager v1.0.18 *
2021/02/07 18:33:20 *****************************************
2021/02/07 18:33:20 Looking for config file: C:\Users\yourself\apps\ngskintools-license-server\config.ini
2021/02/07 18:33:20 Loading configuration from : C:\Users\yourself\apps\ngskintools-license-server\config.ini
2021/02/07 18:33:20 No licenses loaded.
2021/02/07 18:33:20 Starting server on port 8050
2021/02/07 18:33:20 Open browser at http://localhost:8050
If you see no errors, you can open a browser at http://localhost:8050 and you should see something like this:

This confirms that the server is working and ready for next step, setting up licenses to serve.
Setting up licenses
When you purchased floating licenses, you received a license key. License server has a utility to exchange the key for a license file. Click on “Add new license” and in the next screen, enter your license key.

By clicking “continue” license server witll generate a link similar to this:
https://licensing.ngskintools.com/#/self-service/eyJ0eXBlIjoiZ.....
Following the link you’ll be taken to online wizard where you will download your license file. If you are setting up license server offline, you should be able to do this step on another, online workstation.
Place downloaded license file into the empty “licenses” folder that was pre-created alongside the server binary.
After restarting the server, you should now be able to see that server picked up the license file and is preparing to serve it. There is an intentional short delay between server restart and licenses being ready for checkout.

Additional server configuration
Open “config.ini” and you’ll find a few options that you can edit, e.g. server port, license files location configuration. Configuration file contains self-explanatory examples of possible configuration options:
[server]
# server port to serve licenses on;
# if "admin_port" is not provided, administrative UI will also be served on the same port
port = 8050
# alternative port to serve administration UI; if this value is provided, administrative UI will not be available on the default port;
# this allows restricting access to administrative UI at network layer.
# admin_port = 8060
[licenses]
# Provide search paths for licenses. Partial paths will be resolved
# from this configuration file folder. Wildcard patterns are allowed.
#
# Sample entries:
# all json files in this folder:
# *.json
# subfolder
# licenses/*.json
# all ngskintools*.json files in a specific folder:
# /path/to/ngskintools*.json
# c:\path\to\ngskintools*.json
# one specific license file:
# ngskintools-c14dc3d2.json.json
# ...or
# /path/to/ngskintools-c14dc3d2.json.json
licenses/*.json
*-license.json
Restricting access to administrative UI
In it’s default configuration, server is serving licenses and web-UI on the same port. There are no administrative functions other than viewing the status of the server, so there’s no risk running the server in such configuration.
However, if you want to restrict users’ ability to view server pages, server can be configured to run in a mode where licenses and UI are served on different ports. To do that, configure admin_port
(see sample configuration). With that option enabled, server’s UI will only be accessible on that port. You can then use your network configuration to disallow client machines to access the server on admin_port.
For example, given this configuration,
[server]
port = 8050
admin_port = 8060
…connectivity is as follows:
- plugin should be configured to fetch licenses on
your-server:8050
; - server administrators can access UI on
your-server:8060
.
Offline server setup
License server does not require connectivity to the internet and can run in an offline environment, as long as the client workstations are able to reach it via local network.
During initial setup, you’ll need to go online and retrieve a license file, but this can be done using another online workstation, as described in setting up licenses.
Windows: running as a service
You can install and control license server as a Windows service. You need at least v1.0.23
server version for this.
First, open Power Shell with admin privileges.

Allow script execution and run installer script.
$ Set-ExecutionPolicy Unrestricted
$ cd path\to\\nglicensemanager\windows
$ .\service_install.ps1
Service should now show up in Services list, where you can start, stop it, and configure automatic startup:

Linux: running as systemd daemon
To easier manage server uptime, you can configure it to run as systemd service. This will make sure the license server is started after OS restarts or if process crashes for any reason.
Create file /etc/systemd/system/nglicensemanager.service
with contents:
[Unit]
Description=ngLicenseManager
[Service]
ExecStart=/path/to/nglicensemanager-v1.0.20/linux/nglicensemanager
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
Reload systemd to pickup the configuration:
$ sudo systemctl daemon-reload
Start the service, check it’s status:
$ sudo systemctl start nglicensemanager.service
$ systemctl status nglicensemanager.service
Configure to run at startup:
$ sudo systemctl enable nglicensemanager.service
Configuring client workstations
Once the server is serving licenses, you can configure plugin itself. This can be done either via plugin UI, or setting an environment variable in Maya. Start by installing ngSkinTools2 itself from Releases, then choose one of the activation options below.
UI method
Open plugin’s UI from “ngSkinTools2” shelf. Select Help | Register
from ngSkinTools2 window menu, select “License server” method and enter server address in the network and it’s port.

Environment variable
In order to automate configuration for many workstations, it might be more convenient to set server location via environment variables. If ngSkinTools detects an environment variable NGSKINTOOLS2_LICENSE_CONFIG
, it will attempt to load configuration from there.
$ export NGSKINTOOLS2_LICENSE_CONFIG="license-server-url=192.168.1.111:8050"
$ maya