How to get a license
What to send us, what comes back, what to do with the token and where to go for the install. It starts with an email, not a checkout.
The license is a single line starting with SHLIC1.. Without it the install still comes up, but in read-only mode: incoming messages are accepted and stored, and replies are not possible. The token also carries the address the installer fetches the bundle from, so you need it before the very first command.
What to send us
- Your company and website.
- How many operators will work in it and what load you expect.
- Any data-residency requirements: a country, your own rack, a separate network.
- Whether the server will have a way out to the internet. An air-gapped network changes both the order of the install and what we send you, so it is better said up front.
- The two domains, if you have already decided them: the main one for the interface and a separate one for the API and webhooks.
What comes back
- The license token: a single
SHLIC1.…line. Nothing else has to be passed to the installer — the bundle address comes out of it. - The release public key, on request. With it the bundle signature is actually verified, not just noted.
- The bundle as a file and an offline receipt: only for air-gapped networks, arranged in advance.
- The list of our addresses, if there is one. Support sign-in is then allowed only from them, and they are visible in the License section.
What the token says
- The date the install works until.
- The date updates are available until — a separate term. When it runs out the product keeps working and new versions simply stop being offered.
- How many days the install survives with no connection to the license server. An outage on our side should not become one on yours.
What to do with the token
- 1Hand it to the installerThe usual path: the token goes into the install command as
--key, and the installer puts it into/etc/supporthub/license.keyitself — as a file, not an environment variable, so it never shows up indocker inspector in shell history. - 2Or type it into the first-run wizardThe wizard has a field for the key in case the install ran without a token. A key typed there takes precedence over the file. If the installer already placed the token, the wizard does not ask about the license at all.
- 3If you place the file by hand, check its ownershipGroup 1000 is the one the backend runs as inside the container. With
root:rootownership the file is unreadable from there, and the install silently drops to read-only.install -d -m 750 -g 1000 /etc/supporthub install -m 640 -g 1000 ./license.key /etc/supporthub/license.key
Activation
The install needs at least one way out to our license server. It is not a permanent connection: the check runs at start-up and then every six hours. What goes out is the license id, the server fingerprint, the build version, the number of active operators and a timestamp. Message contents and personal data are not sent and are not available to us.
If the server is air-gapped, it never reaches out at all. You send us the server fingerprint, we issue a receipt offline, and you place it as a file. The fingerprint is shown in the License section, and this command prints the same thing:
docker compose exec backend python -c "from app.licensing import fingerprint; print(fingerprint.current())"Where to go next
- Installing on your own server: requirements, the one command, the step-by-step install and what to do when something does not come up.
- Updates and support access: what the Update button does and where the limits of support access are.

