Lizenz-Paket
Für alle, die Contao-Erweiterungen verkaufen: Der Shop stellt beim Kauf einen signierten Lizenzschlüssel aus, bestätigt ihn täglich und liefert deine Pakete über ein eigenes Composer-Repository aus – ohne zusätzlichen Dienst.
Wer was installiert
Beim Lizenz-Paket gibt es drei Beteiligte. Der Lizenzprüfer contao-consho-licensecheck-bundle gehört nicht zu deinem Shop, sondern zu der Software, die du verkaufst – er läuft bei deinen Kunden.
| Du, im Verkaufsshop | Consho und das Lizenz-Paket. Der Shop stellt beim Kauf die Schlüssel aus, bestätigt sie täglich und liefert deine Pakete über das Repository aus. |
|---|---|
| Deine Software | nimmt den Lizenzprüfer in ihrer composer.json als Abhängigkeit auf und meldet sich bei ihm als Produkt an (siehe „Deine Software prüft die Lizenz“). |
| Dein Kunde | installiert nur deine Software, der Lizenzprüfer kommt über Composer mit. Er trägt den Schlüssel unter System → Lizenzen ein; ab dann fragt seine Installation einmal am Tag bei deinem Shop nach. |
In deinem eigenen Shop steht der Lizenzprüfer auch – aber nur, weil das Lizenz-Paket selbst eine Lizenz von consho.eu braucht. Mit den Lizenzen deiner Kunden hat er dort nichts zu tun. Genauso läuft es bei Connect, Mollie und PayPal: consho.eu ist der Verkaufsshop, du bist der Kunde.
Den Lizenzprüfer gibt es als Contao-Bundle, das Lizenz-Paket ist deshalb für Contao-Erweiterungen gedacht. Software für andere Systeme – etwa ein WordPress-Plugin oder eine Desktop-Anwendung – auf Anfrage.
Einrichten
In config/config.yaml die Domain des Verkaufsshops eintragen, ohne https://; die Lizenzschlüssel zeigen auf sie:
contao_consho_licensing:
host: shop.example.orgDann einmal das Schlüsselpaar erzeugen:
php bin/console consho:license:keypairDer Befehl zeigt die Kennung und den öffentlichen Schlüssel, nie den geheimen, und ersetzt ein vorhandenes Paar nur mit --replace. Solange Paar oder Domain fehlen, warnt die Startseite.
Am Artikel
Ein digitaler Artikel mit der Auslieferung Lizenz (siehe Downloads und Lizenzschlüssel):
| Produkt-Kennung | steht im Schlüssel; deine Software vergleicht sie mit ihrem eigenen Namen |
|---|---|
| Versionen | welche Versionen das Repository der Lizenz zeigt: erschienen bis zum Ende des Abos, eine Hauptversion oder alle |
| Composer-Pakete | die Pakete, die die Lizenz öffnet, eines je Zeile |
Was dein Kunde bekommt
- Ein signierter Schlüssel je gekauftem Stück, auf der Bestellseite – nie in einer Mail.
- Tägliche Bestätigung: Seine Installation fragt einmal am Tag und bekommt eine signierte Antwort – aktiv, ruht wegen einer offenen Rechnung, abgelaufen, gesperrt oder anderswo in Gebrauch. Schlüssel und Antwort werden offline geprüft (Ed25519). Ist der Shop nicht erreichbar, gilt die letzte Antwort bis zu 14 Tage weiter.
- Ein Schlüssel, eine Installation: Zum Umziehen gibt er die Installation auf der Bestellseite frei; ist ein Schlüssel in fremde Hände geraten, stellt er dort einen neuen aus – der alte gilt dann nicht mehr.
- Ein Zugang zum Composer-Repository für alle seine Lizenzen, mit den Befehlen und einem Provider-ZIP für den Contao Manager auf der Bestellseite.
Releases veröffentlichen
Neue Versionen kommen nur per Befehl ins Repository und werden nie ersetzt:
php bin/console consho:license:publish vendor/package 1.4.0 /pfad/zum/paket.zipDie composer.json im ZIP muss das Paket nennen. Das Archiv liegt außerhalb des Web-Verzeichnisses.
Im Backend
- Ausgestellte Lizenzen: jede Lizenz mit Produkt, Bestellung, Stand und den Installationen, auf denen sie aktiv war; „Interne Lizenz ausstellen“ für eigene Installationen, Partner oder Kulanz.
- Repository-Zugänge: die Anmeldung je Kunde, mit „Zugang neu erzeugen“.
Die Befehle (consho:license:list, show, release-activation, issue-internal, access-renew) gehen auch über contao-ai. Ihre Antworten enthalten nie einen Schlüssel, ein Token oder Kundendaten.
Sichern
Den Verkaufsshop mindestens täglich sichern. Lizenzen hängen an Bestellungen: Nach dem Einspielen einer älteren Sicherung sind seither ausgestellte Schlüssel unbekannt. Die Startseite nennt sie, und die Installationen laufen bis zu 14 Tage mit ihrer letzten Bestätigung weiter.
Deine Software prüft die Lizenz
Damit deine Software ihre Lizenz prüft, nimmt sie das freie contao-consho-licensecheck-bundle (MIT) auf:
- In der
composer.jsondeiner Software unterrequire:webwerkwien/contao-consho-licensecheck-bundle. - Ein Dienst, der
LicensedProductInterfaceumsetzt: Produkt-Kennung (dieselbe wie am Artikel im Shop), Name, Version und die öffentlichen Schlüssel deines Shops, wie sieconsho:license:keypairanzeigt. - Vor jeder Funktion, die die Lizenz abdeckt, fragst du nach; ohne gültige Lizenz wirft der Aufruf eine Ausnahme mit dem Grund:
$this->gate->assertAllowed('acme-tool', time());Die öffentlichen Schlüssel gehören in deinen Code, nicht in die Konfiguration der Installation – sonst könnte ein Kunde einem eigenen Schlüsselpaar vertrauen.
Was du sperrst, entscheidest du. Bewährt hat sich: Was die Kunden deiner Kunden brauchen, läuft weiter, nur die Annehmlichkeiten ruhen.
Wenn das Abo endet
Schlüssel beim Kauf, tägliche Bestätigung, Repository und die Knöpfe deiner Kunden laufen weiter – sie dienen deinen Kunden. Releases veröffentlichen, interne Lizenzen und die schreibenden Befehle ruhen.
← Consho Connect Mollie →