NEXT HMIDocs
GitHub
Enterprise / Licensing

Licensing

The enterprise build is activated with a license key bound to the machine it runs on. Until it is activated the manager loads — that is where you paste the key — but it starts no projects. A license may also authorise add-on modules on top of that; the audit trail is one.

If the manager opens straight onto the dashboard and Settings has no Device licenses section, you are running the community build. That build contains no license check at all — it is not an enterprise build waiting for a key, and no key will change what it does. Everything else in this guide still applies to it.

Activating a new installation

A freshly installed enterprise build opens on the activation screen, right after you have set the device-admin password.

  1. Copy the Device ID. Press Copy Device ID on the This device card. Send the copied JSON with your purchase — a license is issued for that specific machine and will not activate on another.
  2. Paste the key you are sent, then press Activate.

The dashboard appears as soon as a valid key lands. From then on the same controls live at SettingsDevice licenses.

Adding a license later

An add-on module, a renewal, or a replacement key goes in the same place: Settings → Device licensesAdd a licenseActivate.

Adding a module needs one more step. The runtime has to restart before a newly authorised module mounts; until it does, the panel shows Restart required and the module stays inactive. Restarting drops whatever is currently on the screens of the running projects that are affected, so pick the moment. Stopped projects are never touched — they pick up the new licenses whenever they are next started.

Authorizes lists what each license covers — Runtime activation for the base license, plus any modules. More than one license can be installed at once; the authorised set is the union of every currently valid, unexpired license, so a runtime key and a module key sit side by side. Adding the same key twice is a no-op.

Evaluating before you buy

A time-limited trial license is issued from next-hmi.com/trial — copy your Device ID first, since the trial is bound to that machine like any other license. It activates the enterprise build on that machine, optionally with the audit-trail module, and then expires. See When a license lapses for what that does.

The Device ID

The Device ID is a fingerprint computed from stable hardware identifiers — the machine GUID or platform UUID, and the lowest non-virtual wired MAC address.

Wi-Fi and virtual network interfaces are excluded on every platform. Modern Windows, Linux, and macOS randomise Wi-Fi MAC addresses per network, so including one would make the Device ID drift every time the panel joined a different network and break the license with it. A Wi-Fi-only host falls back to its remaining stable components.

The raw hardware values are never stored or transmitted — only hashes of them. The fingerprint is never written to disk either; it is recomputed each time the process starts. Caching it beside a license would let someone freeze a known-good value and replay it on another machine.

Licenses are normally issued in fuzzy binding mode, which tolerates one hardware change — a replaced network card or disk — without invalidating the license. Strict mode requires an exact match of the whole fingerprint and is used only when a customer asks for it.

When a key is rejected

An invalid license stays listed rather than being silently dropped, so you can see it and remove it. The panel names the reason:

Message What happened What to do
Invalid or expired The signature did not verify, the payload is malformed, or the expiry date has passed. Check you pasted the whole key. If it is expired, renew it.
Unbound license The key carries no device binding. Unbound keys are rejected outright. Ask for a re-issue against your Device ID.
Fingerprint mismatch The key is bound to a different machine. Copy this device's ID and request a key for it, or move the license to the machine it was issued for.
Fingerprint unavailable No hardware identifier could be read on this host. The check fails closed rather than letting an unidentifiable machine activate. This usually means a container or VM with no stable identity — license a host that has one.
The license file could not be read from disk A file under <runtime_home>/licenses/ exists but is unreadable. Check file permissions on the runtime home.

Where licenses live

Under <runtime_home>/licenses/, one file per license. Adding, removing, or replacing a file outside the UI is picked up without a restart — the directory is re-read when its contents change. Mounting a newly authorised module still needs the restart described above.

Licenses are per installation, not per project. They are never included in a project export, upload, or peer transfer — a project moved to another machine needs a license issued for that machine.

When a license lapses

Nothing that is running stops. The activation check runs when the manager starts a project, never against one already serving screens, so a key that expires overnight does not take a line down. What changes:

Effect
Projects already running Keep running, untouched, until you stop them
Starting a project Refused, with the activation message on the dashboard
Rebooting the panel Comes back to the activation screen, with no project running
A crashed project Not restarted automatically — the same refusal applies
The audit-trail module Stops recording; records already written stay on disk
Your project files Never touched by any of this

Restarting the panel with a lapsed key is therefore the one case that leaves an installation dark, and it is the reason to renew before the date rather than on it. The expiry is a date inside the signed key and is checked offline — the runtime never contacts a license server.

What licensing is and is not

Device binding discourages casual reuse of one license across installations. It is not copy protection: someone willing to modify the shipped binary can defeat it. That trade-off is deliberate — the alternative costs every honest operator reliability on a machine that must keep running.

The community build has no license check of any kind. Everything on this page applies only to the enterprise build.

Next: Audit trail — the module a license authorises.