Administration
Licensing
Licensing
docu.nexus is licensed with an offline signed key. Buy from the portal, it mints a key, paste that into the admin panel. The server verifies the Ed25519 signature locally. Nothing phones home. An air-gapped instance licenses exactly like a connected one.
Open Admin, then Licensing. Owners and admins only. Instance-wide, not per nexus.
Tiers
| Tier | Seat cap | Plugins included | Billing |
|---|---|---|---|
| Free | 3 | None | Implicit tier when no key is installed |
| Ignite | 1 | None | Quarterly |
| Energize | 15 | None | Quarterly |
| Vitalize | 50 | None | Quarterly |
| Enterprise | Unlimited | Kanban, Requirements | Quarterly |
A tier sells the platform and a seat count. Paid plugins are separate line items, so Ignite, Energize, and Vitalize include no plugins by default. Whatever you bought is written into your key.
Installing a key
The section has four tabs: Status, Plugins, Licence keys, and Instance fingerprint.
Keys are a set, not a slot. On Licence keys, paste a signed key under Add a licence key. It is validated before it is stored, so a mangled paste is rejected instead of breaking the instance, and existing keys are left alone. Spaces and line breaks in the pasted text are ignored, so a key your mail client wrapped onto several lines can be pasted as it is. Newly entitled plugins unlock immediately, no restart.
Installed keys above it lists what is loaded. Every key applies at once, and entitlements are the union across all of them: a plugin stays unlocked while at least one key grants it. Removing a key relocks only what that key granted. Individual keys can also be switched off without being removed. With no valid key at all, the instance is unlicensed: see What happens without a licence below.
A key pinned by the DOCUNEXUS_LICENSE_KEY environment variable cannot be removed or changed here. The row says so; change the variable and restart the server instead.
Reading the status card
| Row | Meaning |
|---|---|
| Tier | Resolved tier name. Trial while the evaluation is running, Unlicensed once it has ended or when no installed key grants anything. |
| Status | Valid, or the reason it is not: missing, malformed, bad-signature, unknown-issuer, not-yet-valid, expired, wrong-instance. |
| Licence keys | How many keys are installed. |
| Seat cap | Effective cap, and which key it came from. Unlimited on Enterprise. |
| Customer | Organisation the key was issued to. |
| Licence ID | Identifier to quote in support requests. |
| Issued / Expires | Term. “Perpetual” if the key has no expiry. |
| Grace until | Only shown while you are in the grace window. |
| Source | db for a pasted key, env for one from the environment, none when no key is installed at all. |
Below it, Entitlements and where they come from lists each unlocked paid plugin with its SKU, the key that granted it, and when that grant ends. Free plugins are never listed because they are never gated. When two keys grant the same thing, an Overlaps between keys card states it rather than resolving it silently.
The Plugins tab is the same information the other way round: every installed plugin and its licensing state, with the option to add or remove a key per plugin.
What happens without a licence
A new instance runs a 14-day evaluation: the full core product for three people. The Status card counts the days down, and a warning appears in the last five.
When the evaluation ends, or when the last valid key on a licensed instance lapses past its grace window, the instance becomes read-only. That means:
- Everything is still there. Nothing is deleted and nobody is locked out.
- You can still sign in, read every page you could read before, and export your spaces and pages.
- You cannot create or change anything, and no further accounts can be created.
- Paid plugins are locked, except Requirements, which stays readable on an instance that has used it (see Installing and enabling plugins).
A strip across the top of the app says so, and every refused save explains it.
Installing a valid key in Licence keys restores the instance immediately, with no restart and nothing to recover.
Exceeding the seat cap
The seat cap is enforced when a new account is created, and only then. An instance already over its cap (because a key lapsed, or a downgrade narrowed it) keeps every existing account working and signing in; what is refused is the next one, with a message naming the cap and the two ways out.
The two ways out are a key with more seats, or deactivating an account belonging to somebody who has left: a deactivated account holds no seat, and the seat comes back immediately.
When the term expires
There is a 14 day grace period after the expiry date. During grace the licence stays valid, the header shows “(grace period)”, and the panel nudges you to renew. Nothing stops working.
Once grace lapses, entitlements drop to nothing. The instance falls back to core functionality and paid plugins lock. Requirements is the exception: its collections become read-only instead of locked.
How plugins are gated
Each paid plugin declares a SKU. The server checks your key’s entitlements on every request to /api/x/<plugin> and returns 403 Plugin not entitled if the SKU is missing. That check is the real gate.
In the app, a locked plugin is not removed. Its view is replaced with a card reading <Plugin> is locked, with an Open Licensing button for an instance administrator and, for everyone else, a line asking them to have an instance administrator add the licence key. Its data and tables are left alone, so re-entitling brings your content back untouched.
Requirements does not lock once it has been used. After its licence lapses, every read under /api/x/requirements is still answered and every write is refused with a sentence naming the lapsed licence, so collections stay readable in the app and to agents. Creating a new collection is refused.
Moving a license to a new server
First, check whether you need this section at all. The fingerprint your key is bound to belongs to your database, not to the machine: if you move the whole instance by restoring your database backup on the new server (Moving to a New Server), the fingerprint and your installed keys travel inside the dump, and the license keeps validating with no portal step. The reissue flow below is for the other case: a fresh install on the new server that should take over an existing license.
Every install has a fingerprint. Find it on the Instance fingerprint tab of the Licensing section, in the Install fingerprint card, with a Copy button and a short code for reading over the phone.
- On the portal account page, request a maintenance link. It is single use.
- Open the link. It shows Move your license to this server.
- On the new server, open Admin, then Licensing and copy the full fingerprint.
- Paste it into Instance fingerprint and click Issue new key.
- Copy the key it returns and paste it into Add a licence key on the new server.
The new key is bound to the new fingerprint and validates nowhere else. The old instance keeps its existing key until that key expires, but it will not renew. Decommission it once the new server is up. If the maintenance link is incomplete or expired, sign in on the portal account page and request a fresh one.