Licensing
Eviworx starts automatically in trial mode. A valid license is required for production use. Activation is done either via the .env file or directly in the web UI.
30 days from first start
Max. 3 agents
No license key required
Full functionality
Heartbeat every 4 hours
Internet connection required
Air-gapped environments
Manual renewal
Fixed expiry date
Trial Mode
After installation, Eviworx automatically starts in trial mode — no configuration, no license key required. The trial is bound to the installation and runs for 30 days.
| Property | Value |
|---|---|
| Duration | 30 days from first start |
| Max. agents | 3 |
| Feature scope | Complete (all modules) |
| Grace Period | none — the trial ends directly after 30 days |
| After expiry | Read-only mode (TRIAL_EXPIRED, no write operations) |
Note: Trial mode cannot be extended by resetting the database. The counter is bound to the installation identity.
License Status
| Status | Meaning | Write Access |
|---|---|---|
VALID | License active and valid | ✅ |
TRIAL | Trial active (max. 3 agents) | ✅ |
WARNING | Expires in 14 days or less | ✅ |
GRACE | Expired, grace period active (7 days by default) | ✅ |
READ_ONLY | Grace period expired | ❌ |
TRIAL_EXPIRED | Trial expired, no license | ❌ |
REVOKED | License revoked by the vendor | ❌ |
HEARTBEAT_OVERDUE | Online license has not reached the license server for too long (7 days without heartbeat by default) | ❌ |
TAMPERED | License data invalid (signature check failed) | ❌ |
In every status without write access, GET requests remain allowed. POST, PUT, PATCH and DELETE are rejected with HTTP 402 (errorCode LICENSE_EXPIRED, LICENSE_REVOKED or LICENSE_HEARTBEAT_OVERDUE). Read access to all data and reports remains available; login and entering a license keep working.
Option A: Online Activation (recommended)
Add your license key and license secret to the .env file. The backend container automatically validates the license against the license server on startup.
1. Add credentials to .env
# In .env:
LICENSE_KEY=EVI-XXXX-XXXX-XXXX
LICENSE_SECRET=your-license-secret-from-vendor
# LICENSE_SERVER_URL=https://lic.eviworx.com # Optional, default is used automatically
2. Backend restart
docker compose up -d backend
Alternatively, activation can also be done directly in the web UI: Admin Center → System → Product License → Online Activation
After successful activation, the backend service sends a heartbeat to the license server every 4 hours to keep the license current.
Option B: Offline Activation
For environments without internet access (air-gapped), offline activation is available. Offline licenses have a fixed expiry date and must be renewed manually.
- Open Admin Center → System → Product License in the web UI — note the Installation Fingerprint
-
Go to
https://lic.eviworx.com/activate - Enter License Key + Fingerprint
- Copy the generated activation code
- Enter it under Admin Center → System → Product License → Offline Activation
Deactivation & Server Migration
To transfer the license to a new server, first deactivate it on the old system:
- Old system: Admin Center → System → Product License → Deactivate License
- New system: Add LICENSE_KEY + LICENSE_SECRET to .env and restart backend
If the old system is no longer accessible, the binding is automatically released after 60 days without heartbeat. Contact info@eviworx.com for immediate manual release.
Privacy & Heartbeat Transparency
During online activation and heartbeat, the following data is transmitted to the license server (lic.eviworx.com):
| Data point | Description |
|---|---|
| Installation fingerprint | Cryptographic hash — uniquely identifies the installation, contains no personal data |
| Installation ID | Anonymous UUID (randomly generated on first start) |
| Active agents (count) | Count only — no names, emails or further data |
| Server-IP + Timestamp | For heartbeat verification and abuse detection |
No personal data is transmitted: no usernames, email addresses, ticket content or configuration data. All communication with the license server is HTTPS-encrypted.
Check License Status
# Lizenz-Status via API
curl -k https://your-domain.com/api/settings/license \
-H "Authorization: Bearer YOUR_TOKEN"
# Logs on license issues
docker compose logs backend | grep -i "license\|TRIAL\|GRACE"
First steps after installation
LICENSE_KEY, LICENSE_SECRET and all other variables