KoolBox Documentation

Activate Your License

Two ways to license a KoolBox installation — a four-click online activation, or a two-file exchange for a network that never reaches the internet.

Understand the grace period first

A new installation gets 3 days of full access with no license, counted from the moment it first started. If you have not installed KoolBox yet, start with Install KoolBox.

During those 3 days a dark amber banner with an orange warning triangle sits across the top of the content area on every page — checked on all of them — alongside a Grace Period badge at the top right:

Expected output
License not activated — 3 days remaining in grace period
Activate your license before the grace period expires to maintain uninterrupted access.
[Activate now]

One feature is held back during the grace period: the Kai assistant is unavailable until a license is active, and it really is absent rather than merely inert — there is no sidebar entry and no mention of it anywhere in the interface.

When the 3 days run out. The console stops being usable: every page redirects to the License page. Only two areas remain reachable — the License page itself and Settings. Nothing is deleted, nothing is lost, and activating a license restores everything immediately.

Go to Administration → License in the sidebar to activate. There are two ways to do it: online if your server can reach the internet, or offline if it cannot.

The Administration License page with an orange grace-period banner across the top
Administration → License during the grace period. The banner counts down the days remaining.

Online activation (the normal way)

Use this if your server can reach the internet.

How much of this was verified. Online activation was carried out end to end on a live Ubuntu 24.04 server against the real activation service, so everything described below — including the screenshot — is the actual result. Only the success path was exercised, so the four failure messages further down are as the product documents them, and offline activation and renewal remain verified only as far as the interface.
  1. In the sidebar, open Administration → License.
  2. Select the Online Activation tab.
  3. Paste the activation code from your purchase confirmation email into the box. Codes look like KBOX-XXXX-XXXX-XXXX.
  4. Click Activate.
The Online Activation tab with a field for the KBOX activation code
The Online Activation tab, with a code typed into the box and not yet submitted. The placeholder reads “Enter activation code (e.g. KBOX-XXXX-XXXX-XXXX)”.

Your machine fingerprint is sent to Koolify's activation service, which returns a license bound to this specific installation.

Success looks like. A green “License activated successfully!” message, which you can dismiss with its ×; the badge at the top right changing from Grace Period to a green Active; the page subtitle becoming Licensed to <your organization>. Expires <date>.; and two cards appearing side by side.

The License Details card lists, in this order:

Scroll to see all columns →

The rows of the License Details card after a successful activation, and what each one tells you.
RowWhat it holds
CustomerThe organization the license was issued to
Customer IDKoolify's own account identifier. Quote it when you contact support
Activation typeonline here; a file exchange reports itself differently
Deployment modeThe mode the license permits
Max nodesHow many private AI nodes you may register — 10 on the Enterprise key used for this capture
Support levelThe support tier the license carries, for example enterprise
ActivatedWhen this installation was licensed
ExpiresWhen it stops being valid, and when you must renew by

Beside it sits an Enabled Modules card, with one pill per module your plan includes — private AI chat, RAG, document analysis, OCR, workflow automation and so on. The set differs from plan to plan, so treat this card as the authoritative statement of what your own key unlocks.

Every value on both cards comes from the key Koolify issued you, which is the quickest way to confirm you were given what you bought.

The grace-period banner clears on reload, not immediately. For a few moments after a successful activation the amber License not activated — 3 days remaining in grace period banner can still be sitting at the top of the page while the badge already reads Active and the success message is on screen. That is a display lag, not a failed activation. Reload the page and it is gone.
The Administration License page immediately after a successful online activation, showing the Active badge, the success message, the License Details card and the Enabled Modules card
Administration → License immediately after a successful online activation.

If it fails, the message tells you which of these it was:

Scroll to see all columns →

Online activation error messages and what to do about each.
MessageWhat to do
“Invalid activation code…”Check for typos or missing characters; the code is case-sensitive.
“Could not reach the license server…”Your server has no outbound internet access. Use offline activation.
“Code already activated on another machine”The code is already in use. Contact Koolify — do not keep retrying.
“License server returned an unexpected response…”A temporary problem at the activation service. Wait and retry.

Offline activation (for isolated networks)

Use this when your server has no internet access. It is a simple two-file exchange, and once done, the installation never contacts any server again.

  1. Download your machine fingerprint. On the Administration → License page, the Machine Fingerprint card is at the top. Click Download fingerprint file. Your browser saves a small file named like koolbox-fingerprint-1791953435543.json.

  2. Send that file to Koolify through your approved channel. It is a small text file. You can open it and read it first; it contains only your installation's own identifier and basic host characteristics.

  3. Koolify sends back a signed license file (.lic), generated specifically for this machine.

  4. Upload it. On the same page, choose the Offline Activation tab and either drag the file onto the dashed box or click it to browse. The box reads “Drop license file here or click to browse — accepts .json or .lic files signed by Koolify”, and that is exactly what it accepts.

The Offline Activation tab with a dashed drop zone for a .lic license file
The Offline Activation tab accepts a .lic or .json license file by drag-and-drop.
Success looks like. “License imported and activated successfully!” and the badge changing to Active.

If it fails:

Scroll to see all columns →

Offline activation error messages and their causes.
MessageCause
“Invalid license file. Could not decrypt or validate…”The license was generated for a different machine's fingerprint. Send the fingerprint file again and ask for a replacement.
“This license has already expired.”The dates on the license have passed. Request a current one.
Air-gapped installs. Offline activation pairs with Method D, installing with no internet access. Together they let KoolBox run with no outbound network access of any kind. See also Air-Gapped AI.

What the machine fingerprint is

Your license is tied to this installation so it cannot be copied elsewhere. The fingerprint looks like this:

Example fingerprint
KB-A1B2-C3D4-E5F6-7890-ABCD

It is a one-way cryptographic hash of an identifier created once for this installation, combined with seven host characteristics: hostname, operating system and kernel release, CPU model and core count, memory size, and the first network adapter's address. All seven are listed on screen as small chips, so you can see exactly what goes into it, and they appear in the file you download — which is the whole of it, about half a kilobyte:

koolbox-fingerprint-1791953435543.json
{
  "version": "1.0",
  "generatedAt": "2026-10-14T04:50:35.870Z",
  "machineFingerprint": "KB-7B6F-9ECF-1EB9-2F58-7FAD",
  "installId": "70594920-6637-407a-b368-dc034a36d625",
  "components": {
    "hostname": "your-server",
    "platform": "Linux",
    "release": "7.0.0-1014-aws",
    "cpuModel": "Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz",
    "cpuCores": "2",
    "totalMemoryGb": "8",
    "primaryMac": "0e:ff:c3:c9:3b:53"
  },
  "platform": {
    "product": "KoolBox Private AI Platform",
    "consoleVersion": "1.0.0"
  }
}

No documents, user data, prompts or business information are involved — that is the entire file, and you can read it before you send it. The consoleVersion line describes the file format, not your installed release, so do not be concerned that it reads 1.0.0 on a 1.2.8 server. Because the installation's own identifier is part of the hash, the fingerprint survives routine hardware changes.

One thing does change it: restoring a database backup. The identifier lives in the database, so restoring a backup taken before this installation first showed its License page replaces it with a newly minted one — and the fingerprint changes on completely unaltered hardware, which stops an existing license matching. Check this page after any restore; Restoring a backup carries the before-and-after measurements. An online license re-binds when you activate again with the same code; an offline one needs a new fingerprint file and a replacement license file from Koolify.
The Machine Fingerprint card showing the fingerprint string and chips for each host characteristic
The Machine Fingerprint card lists every value that goes into the hash.
The Administration License page on RHEL 9.6 running 1.3.0, showing the machine fingerprint, host characteristic chips, both activation tabs and the grace-period banner
The whole License page on a RHEL 9.6 server running 1.3.0: fingerprint, host chips, the Download fingerprint file button, both activation tabs, and the grace-period banner across the top.

Renewal, and what you must do before expiry

This differs between the two license types, and the difference matters.

Online licenses renew themselves

Once a day the console quietly checks its license and, when expiry is within 7 days, requests a renewal and swaps it in. You do not need to do anything as long as your subscription is current and outbound HTTPS is open.

If a renewal cannot be reached, nothing is revoked — a network problem never locks you out. If an online license does lapse, you get a further 3-day grace period while renewal keeps retrying.

Offline licenses do not renew

Offline licenses get no extra grace. An air-gapped installation contacts nothing, ever — which also means nothing can extend it for you. Request a replacement license file from Koolify before the expiry date shown on the License page, and upload it the same way as before. A license file that has already expired is refused.

Finding your expiry date

Check it at any time on Administration → License — it is the Expires row of the License Details card, and also appears in the text at the top of the page.

If every page is redirecting you to the License page, the grace period has ended; activating restores everything immediately. Other symptoms are covered in Troubleshooting.

Need a License for an Air-Gapped Deployment?

Air-gapped KoolBox is licensed by file exchange, with no outbound connection at any point. Tell us about your environment and we will scope it with you.