Licence
Elowen runs with a licence tied to your installation. Without a usable licence the daemon stays locked: the web app shows a Licence required page and only the licence routes answer (GET /health, GET /setup, GET /licence, POST /licence/activate); everything else returns licence_locked until you activate.
Activate
Three ways, all equivalent:
- During install. Run the installer and enter the key at its masked prompt:
For unattended installs, have your secrets store setcurl -fsSL https://build.coresynth.io/hooks/licensing/v1/install.sh | bashELOWEN_LICENCE_KEYin the environment and pass the install flags throughELOWEN_INSTALL_ARGS. Never put the key on the command line, inlineKEY=valueincluded: it leaks into shell history and process lists. - On the locked page. Open the web app, enter the activation key, and press Activate. The daemon restarts itself afterwards.
- In the terminal. Run:
The key comes from theelowen licence activateELOWEN_LICENCE_KEYenvironment variable or from a masked prompt. Never pass it as a command argument: arguments leak into process lists and shell history.
elowen licence without arguments shows the current state: customer, expiry date, covered plugins, and the grace deadline (see below). Administrators can also see the state in Settings → System on the Licence card, replace the key there, or press Check now to contact the licence server immediately.
Binding check before installation
The installer verifies the key before changing anything on the machine. It reads the installation ID from an existing licence.json when one is present (a reinstall keeps its ID) and asks the licensing server whether the key may be used there. A key that is invalid, expired, revoked, or already activated on another server stops the install with an explanatory message while the machine is still untouched. The check never binds the key: the binding happens only during the actual activation.
Why the locked page appears
The page names the reason:
- No licence is installed. Activate with any of the ways above.
- The licence has expired. Renew it with your provider, then activate the new key.
- The licensing server has been unreachable for too long. The installation ran past its 7-day grace (see below). Restore the server's internet access: the daemon checks in on its own and unlocks within minutes when a licence is stored, otherwise re-activate with your key.
- The licensing server refused this installation. The licence was revoked or moved. Contact support.
- This licence was issued for a different server. Each licence belongs to one installation ID. Activate the key meant for this server.
- The licence file is corrupt. A structurally damaged
licence.jsonprevents both boot and activation: the daemon cannot start, and entering a key cannot repair the file. Restorelicence.jsonfrom a backup of the same installation, or contact support for a matching record. Never delete the file: a fresh file carries a new installation ID, so the key bound to the old ID is then refused as belonging to a different server.
Grace period and check-ins
Elowen does not need a permanent connection to the licence server. The daemon checks in roughly every 6 hours and whenever you press Check now. Each successful check-in renews a 7-day grace period: if the server becomes unreachable, Elowen keeps running until the grace deadline.
- After 24 hours without contact, administrators see a Licence server unreachable warning that names the date the installation keeps running until.
- 14 days before expiry, administrators see a Licence expires soon warning.
- Restarting does not extend the grace period: the deadline is part of the signed licence, not of the local clock.
Clock notes
The licence carries the server's signing time, which the daemon compares against the local clock. Keep the server clock in sync (NTP): a clock running far behind or ahead can lock the installation even with a valid licence. Small differences up to 5 minutes are tolerated. Turning the clock back cannot revive an expired grace period: the daemon remembers the latest time it has seen.
Where the licence lives
The licence file is licence.json, stored next to the database (elowen.db) and following ELOWEN_DB to a custom location. It holds the installation ID and the licence token, readable only by its owner.
Moving the data directory moves the licence with it: back up and restore the whole state directory together, including the database, the plugin-secret key, and licence.json. Each installation has its own ID stored in that file, so activate a separate key on each machine instead of copying the file between them.