Grundprinzip
Nova Control Panel wird als Abonnement angeboten. Die Lizenz begrenzt die Anzahl der Server (Knoten) einer Installation und die Updates, die sie installieren darf. Lizenzen vertreibt die Meyer und Heldt GbR über das Kundenportal konto.novacontrolpanel.com. Die Community-Edition ist für einen Server kostenlos und braucht keine Lizenzdatei.
Wichtig: Die Lizenz schaltet nie etwas ab, das bereits läuft. Websites, E-Mail, DNS und Datenbanken bestehender Mandanten arbeiten in jedem Lizenzstatus weiter. Die installierte Version läuft immer weiter.
Editionen
| Edition | Knoten | Updates | Support |
|---|---|---|---|
| Community (ohne Lizenzdatei, kostenlos) | 1 | alle Releases | keiner |
| Abonnement | max_nodes | Releases, die bis update_entitlement_until + grace_days veröffentlicht wurden | standard oder premium |
Lizenzstatus
| Status | Bedeutung | Was verweigert wird |
|---|---|---|
community | keine Lizenz installiert | ein zweiter Knoten |
active | Abonnement innerhalb von valid_from..valid_until | Knoten über max_nodes, Releases nach dem Stichtag |
grace | valid_until überschritten, aber innerhalb von grace_days | wie active |
expired | Kulanzzeit abgelaufen | wie active: Das Knotenlimit bleibt max_nodes, später veröffentlichte Releases bleiben gesperrt; die installierte Version läuft weiter |
over_limit | mehr Knoten in Betrieb, als das Limit erlaubt | neue Knoten; nach der Kulanzzeit jedes Update |
invalid | Lizenzdatei vorhanden, aber unbrauchbar (Signatur, andere Installation, Schlüssel nicht vertrauenswürdig, noch nicht gültig) | es gelten die Community-Limits |
Was als Knoten zählt
- Ein Knoten zählt, sobald er eingebunden (enrolled) ist. Widerrufene und aufgegebene Knoten zählen nie.
- Der Control-Host ist Knoten 1, auch bevor er sich selbst registriert hat.
- Eine geplante Fleet-Topologie zählt erst, wenn ihre Knoten eingebunden sind. Eine Community-Installation mit einer Fünf-Knoten-Topologie meldet also
nodes 1 of 1, bis ein zweiter Knoten eingebunden werden soll – was Community verweigert. - Ist die Knotenquelle nicht lesbar, wird der Wert als unbekannt gemeldet (
nodes_used: null), nie als Überschreitung.
Über dem Limit
Knoten oberhalb des Limits laufen weiter. Neue Knoten werden sofort verweigert. Updates bleiben während der Kulanzzeit erlaubt: bei Community 30 Tage ab der Installation, bei einer Lizenz grace_days ab valid_from.
Update-Stichtag
Ein Release ist abgedeckt, wenn sein signiertes published_at höchstens bei update_entitlement_until + grace_days liegt. Community hat keinen Stichtag.
Hinweise im Panel
Administratoren sehen bei grace, expired, over_limit und invalid einen Hinweis-Banner auf dem Dashboard sowie die Seite Einstellungen › Lizenz. Kunden und Reseller sehen nichts von der Lizenzierung.
Die Lizenzdatei
Die Lizenz ist eine kanonische JSON-Datei (höchstens 8 KB), mit Ed25519 signiert. Sie ist an genau eine Installation gebunden und enthält unter anderem:
| Feld | Bedeutung |
|---|---|
edition | z. B. subscription |
installation_id | die Installations-ID (ncpi_…), an die die Lizenz gebunden ist |
license_id | Kennung der Lizenz (lic_…) |
licensee | Name und Kundennummer |
max_nodes | erlaubte Knotenzahl |
valid_from, valid_until | Laufzeit |
update_entitlement_until, grace_days | Update-Stichtag und Kulanztage |
support_level | standard oder premium |
Wichtig: Verändere die Datei nicht. Die Signatur deckt den Inhalt, die
license_idund dieinstallation_idab; eine umformatierte oder bearbeitete Datei wird abgelehnt.
Lizenz anfordern und installieren
1. Installations-ID ermitteln
Der kombinierte Installer legt die Installationsidentität beim ersten Installieren des Control-Hosts einmalig an: /etc/nova-controlpanel/installation.json mit ncpi_ plus 26 Zufallszeichen (root:nova-controlpanel 0640). Upgrades und Rollbacks behalten sie bei. Außerdem legt er das Lizenzverzeichnis /var/lib/nova-controlpanel/license an (root:nova-controlpanel 0770).
Die ID liest du so aus:
nova-update license show-idoder im Panel unter Einstellungen › Lizenz. Gib sie bei der Bestellung im Kundenportal an.
2. Lizenz installieren
Alle drei Wege führen dieselben Prüfungen durch: hinterlegte (gepinnte) Lizenzschlüssel, Installationsidentität, Signatur, Bindung, valid_from erreicht und nie älter als die bereits installierte Lizenz.
- Panel: Einstellungen › Lizenz, Datei hochladen. Dafür brauchst du
system.license.manageund den Step-up (Passwort und Authenticator-Code). - API:
PUT /system/licensemit der Datei als Body. - Kommandozeile als root:
nova-update license install FILE3. Status prüfen
nova-update license status [--json]Alternativ GET /system/license (Administratoren mit platform.server.read) oder das Panel.
Zurück zu Community
nova-update license removeAm laufenden Betrieb ändert sich dadurch nichts.
Lizenz verlängern
Zur Verlängerung erhältst du eine neue Lizenz mit späterem Ausstellungsdatum, die du wie oben installierst. Eine ältere Lizenz ersetzt nie eine neuere, bereits installierte (LICENSE_SUPERSEDED), und eine Lizenz vor ihrem valid_from wird abgelehnt.
Knoten hinzufügen
Wichtig: Installiere eine Lizenz für die Ziel-Knotenzahl, bevor du einen weiteren Knoten einbindest.
Diese Schritte verweigern einen Knoten über dem Limit, bevor irgendetwas passiert, und nennen das Limit:
| Schritt | Ablehnung |
|---|---|
nova-agent-fabric.sh node-register (agent-node.php register) | AGENT_ENROLLMENT_LICENSE_NODE_LIMIT + Meldung |
nova-node-bootstrap.php bootstrap (neuer next_node) | NOVA_LICENSE_NODE_LIMIT + Meldung |
native-topology-change.php plan/check (Topologie-Erweiterung) | NOVA_LICENSE_NODE_LIMIT: N node(s) would exceed the licensed limit of M … |
Einen Knoten ersetzen (einen hinzufügen, einen entfernen), Knoten entfernen, Rollen ändern, neu registrieren, Zertifikate rotieren und widerrufen wird nie verweigert.
Eine neue Multi-Host-Installation läuft deshalb so ab: kombinierte Installation auf dem Control-Host, Lizenz installieren, dann die übrigen Knoten einbinden (siehe Installation).
Lizenz und Updates
nova-update checkbietet nur abgedeckte Releases an. Neuere, nicht abgedeckte Releases zeigen den Kanalstatusnot_entitled; die installierte Version läuft weiter.fetchundapplyverweigern sie mitNOVA_UPDATE_LICENSE_ENTITLEMENT_ENDEDbzw.NOVA_UPDATE_LICENSE_OVER_LIMIT.- Satelliten-Knoten folgen dem Control-Host.
- Jede Anfrage an den Release-Server enthält neben dem Update-Schlüssel die Header
X-Nova-License-IdundX-Nova-Installation-Id(bei Community ohne Lizenz-ID).
Details stehen im Kapitel Updates.
Lizenzschlüssel
Die Liste der vertrauenswürdigen Lizenzschlüssel liegt unter /etc/nova-controlpanel/license-keys/license.json (+ .sig), root 0644 in einem root-Verzeichnis mit 0755. Der kombinierte Installer hinterlegt sie mit --license-keys keys/license/<n>.json und prüft die Kette vor jeder Änderung.
Rotiert der Hersteller den Lizenzschlüssel, folgt nova-update check der neuen, signierten Liste automatisch. Ohne Release-Server übernimmst du sie auf jedem Control-Host von Hand:
nova-update license trust keys/license/2.jsonEine Liste, die kein bereits hinterlegter Schlüssel signiert hat, wird abgelehnt (NOVA_LICENSE_KEYS_ROTATION_INVALID).
Fehlercodes
| Code | Wo | Bedeutung |
|---|---|---|
LICENSE_INVALID (422) | API | keine gültige, von einem hinterlegten Lizenzschlüssel signierte Lizenz |
LICENSE_INSTALLATION_MISMATCH (422) | API | für eine andere Installation ausgestellt |
LICENSE_NOT_YET_VALID (422) | API | vor valid_from |
LICENSE_SUPERSEDED (409) | API | eine später ausgestellte Lizenz ist installiert |
LICENSE_KEYS_NOT_PINNED (409) | API | keine Lizenzschlüssel-Liste hinterlegt |
LICENSE_INSTALLATION_UNKNOWN (409) | API | noch keine Installationsidentität |
LICENSE_STATUS_UNAVAILABLE (503) | API | Status kann nicht gelesen werden |
NOVA_LICENSE_NODE_LIMIT / AGENT_ENROLLMENT_LICENSE_NODE_LIMIT | CLI | ein Knoten über dem Limit |
NOVA_UPDATE_LICENSE_ENTITLEMENT_ENDED / NOVA_UPDATE_LICENSE_OVER_LIMIT | nova-update | Release nicht abgedeckt |
Hinweise zu Drittanbieter-Software
Jedes Release enthält die Lizenzhinweise der mitgelieferten Drittanbieter-Software (THIRD-PARTY-NOTICES.txt), und die zugehörigen Quellpakete werden neben dem Release veröffentlicht. Im Panel findest du die Liste unter Über Nova.