CLI-Referenz
Bei laufendem Cuby lassen sich Produkte auch im Terminal verwalten — installieren, aktualisieren, starten, stoppen, Status und Logs abfragen. Damit sind Installationen auch auf Servern ohne Browser und in Skripten möglich.
Die CLI arbeitet ausschließlich über die REST API eines laufenden Cuby. Lokal und remote ist es derselbe Codepfad: Nur der Cuby-Prozess verändert Produkte, die CLI ist ein Client.
Voraussetzung — Cuby muss laufen. Ist unter der Ziel-URL kein Cuby erreichbar, bricht die CLI mit einem Hinweis ab.
Aufruf
cuby # ohne Kommando: startet den Cuby-Server
cuby list # mit Kommando: führt die CLI aus und beendet sich
cuby --help # alle Kommandos und OptionenDas erste Argument, das einem bekannten Kommando entspricht, startet die CLI — alles davor gehört zum Server-Aufruf.
Kommandos
| Kommando | Beschreibung |
|---|---|
cuby install <productId>[@alias] [...] | Produkt(e) installieren |
cuby update <instanceId> [...] | Produkt(e) aktualisieren |
cuby uninstall <instanceId> [...] | Produkt(e) deinstallieren |
cuby list | Installierte Produkte anzeigen |
cuby list --available | Verfügbare Marketplace-Produkte anzeigen |
cuby start <instanceId> [...] | Produkt(e) starten |
cuby stop <instanceId> [...] | Produkt(e) stoppen |
cuby restart <instanceId> [...] | Produkt(e) neu starten |
cuby status [<instanceId>] | Status aller oder eines Produkts |
cuby logs <instanceId> | Logs eines Produkts |
install, update, uninstall, start, stop und restart nehmen mehrere Produkte in einem
Aufruf entgegen.
Optionen
| Option | Beschreibung |
|---|---|
--url <url> | Ziel-Cuby (Standard: http://localhost:3847) |
--api-key <key> | API Key; ohne Angabe wird der Key des lokalen Cuby verwendet |
--no-wait | Nicht auf das Ende von Installation/Update warten |
--json | Ausgabe als JSON |
--answers <json|datei> | Antworten für Plugin-Dialoge bei install/update |
--lines <n> | Anzahl Log-Zeilen (Standard: 100) |
--file | Logs aus der Log-Datei statt aus dem Speicher lesen |
--help, -h | Hilfe anzeigen |
Optionen werden als --option wert oder --option=wert geschrieben. Eine unbekannte Option bricht
den Aufruf mit Exit-Code 2 ab.
Instanz-IDs und Aliase
Ein Produkt kann mehrfach installiert werden. Beim Installieren wird der Alias mit @ angehängt,
alle weiteren Kommandos arbeiten mit der daraus entstandenen Instanz-ID:
cuby install processcube-lokal@test # Instanz-ID: processcube-lokal__test
cuby restart processcube-lokal__testOhne Alias sind Produkt-ID und Instanz-ID identisch. cuby list zeigt die Instanz-IDs,
cuby list --available die Produkt-IDs aus dem Marketplace.
API Key
Der API Key ist optional. Die CLI löst ihn in dieser Reihenfolge auf:
--api-key <key>- Umgebungsvariable
CUBY_API_KEY - Umgebungsvariable
PROCESSCUBE_API_KEY - API Key des lokalen Cuby aus dem Secret Store
Für den lokalen Cuby genügt damit der Aufruf ohne weitere Angabe. Ein abgelehnter Key führt zu einer
401-Meldung mit Hinweis auf --api-key. Details unter Authentifizierung.
Anderen Cuby ansteuern
Mit --url richtet sich jedes Kommando an eine andere Cuby-Instanz — praktisch für Server- und
Cloud-Installationen:
cuby list --url https://cuby.example.com --api-key $CUBY_API_KEY
cuby install processcube-k8s --url https://cuby.example.comFehlt das Protokoll, wird http:// ergänzt.
Fortschritt und Warten
install und update starten den Vorgang und warten standardmäßig auf den Abschluss. Der Fortschritt
wird im Terminal ausgegeben, der Status alle 500 ms abgefragt; nach 30 Minuten bricht die CLI mit einer
Zeitüberschreitung ab. Der Vorgang selbst läuft im Cuby weiter.
Mit --no-wait wird der Vorgang nur angestoßen:
cuby install processcube-lokal --no-waitPlugin-Dialoge vorab beantworten
Fragt ein Produkt während der Installation per cuby.prompt() nach Eingaben, blockiert der Vorgang
bis eine Antwort vorliegt. Mit --answers werden die Antworten vorab übergeben — als JSON-Array oder
als Pfad zu einer JSON-Datei, ein Eintrag pro Dialog in der Reihenfolge des Auftretens:
cuby install mein-produkt --answers '[{"region":"eu"},{"token":"abc123"}]'
cuby install mein-produkt --answers antworten.jsonDie CLI hängt sich dafür mit demselben Vertrag wie das Frontend an die Socket.IO-Events des Servers.
Ohne passende Antwort bleibt der Dialog offen und kann weiterhin in der Weboberfläche beantwortet
werden — die CLI weist darauf hin, statt stumm zu warten. Mit --no-wait werden --answers nicht
verwendet.
Ausgabe
Ohne --json gibt die CLI Tabellen aus:
$ cuby list
INSTANCE-ID NAME VERSION STATUS
───────────────────── ───────────────── ─────── ───────
processcube-lokal ProcessCube Lokal 0.6.0 ok
processcube-lokal__qa ProcessCube Lokal 0.6.0 stopped| Kommando | Spalten |
|---|---|
list | INSTANCE-ID, NAME, VERSION, STATUS |
list --available | PRODUCT-ID, NAME, VERSION, STATUS (installiert, Update verfügbar) |
status | INSTANCE-ID, STATUS, PID, MELDUNG |
Der Status fasst den Prozesszustand und den Health-Check des Produkts zusammen: ok bzw.
fehlerhaft kommen aus der Rückmeldung des Produkts selbst (z.B. „Alle Services laufen”,
„Nicht erreichbar”), sonst wird der Prozessstatus (running, stopped) bzw. unbekannt angezeigt.
Plugin-Produkte laufen nicht als Kindprozess — ihr Laufzeit-Signal ist die /health-Route des
Plugins, dieselbe Quelle wie im Dashboard.
Mit --json liefern alle Kommandos maschinenlesbare Ausgaben inklusive Prozess- und Health-Details:
cuby list --json | jq -r '.[] | select(.status != "ok") | .instanceId'Logs
cuby logs processcube-lokal # letzte 100 Zeilen aus dem Speicher
cuby logs processcube-lokal --lines 500 # mehr Zeilen
cuby logs processcube-lokal --file # aus der Log-Datei statt aus dem SpeicherZeilen aus stderr werden mit [ERROR] gekennzeichnet. Details zu den beiden Log-Quellen unter
Produktverwaltung.
Exit-Codes
| Code | Bedeutung |
|---|---|
0 | Erfolg |
1 | Fehler (Vorgang fehlgeschlagen, Cuby nicht erreichbar, nicht autorisiert) |
2 | Falscher Aufruf (fehlendes Argument, unbekanntes Kommando oder unbekannte Option) |
Damit lässt sich die Einrichtung automatisieren:
#!/usr/bin/env bash
set -e
cuby install processcube-lokal --answers antworten.json
cuby status --json > status.jsonWeiterführend
- API-Referenz — die Endpunkte, die die CLI verwendet
- Produktverwaltung — dieselben Vorgänge in der Weboberfläche
- Troubleshooting