Zum Inhalt springen

Navigation

CLI-Referenz

Alle Befehle von aictl mit Optionen, Standardwerten und Beispielen, gruppiert wie in aictl --help. Für die meisten Aufgaben brauchst du nur wenige davon.

25 Min. Lesezeit Kapitel 19

Allgemeines#

Hilfe und Tippfehler#

  • aictl --help zeigt alle Befehle, gruppiert nach Aufgabe.
  • aictl <befehl> --help zeigt Optionen und Beispiele eines Befehls, zum Beispiel aictl extension install --help.
  • aictl ohne Befehl zeigt ebenfalls die Hilfe.
  • Vertippst du dich, schlägt aictl den passenden Befehl vor:
$ aictl statuss
error: unknown command "statuss" for "aictl"

Did you mean this?
	status
  • Bei einer unbekannten Option weist aictl auf aictl --help hin.
  • aictl --version gibt dasselbe aus wie aictl version, ohne die Liste der Erweiterungen.
  • Ein Befehl completion für die Befehlsergänzung in der Shell existiert, wird in der Hilfe aber nicht aufgeführt.

Kurzformen#

Viele Befehle haben eine zweite Schreibweise:

Befehl Kurzform
ls list
rm remove (bei extension umgekehrt: remove und rm)
model install model pull
doctor diagnose

Wann du sudo brauchst#

Auf dem Hauptserver brauchen fast alle Befehle Administratorrechte. aictl prüft das vor dem Start und schlägt den passenden Aufruf vor:

error: this command must run as root — …
  try: sudo aictl status
Befehle sudo nötig?
aictl --help, help, version, extension lint nein
status, license info, license check, auth info, brand show, update status, spec show, extension override lint nein für die Person, die install mit sudo aufgerufen hat und dabei freigeschaltet wurde (siehe unten), sonst ja
alle anderen, auch reine Anzeigen wie model ls, node ls, extension ls, logs, doctor ja

Am Ende von install erhält die Person, die den Befehl mit sudo aufgerufen hat, über eine Systemgruppe Lesezugriff auf die oben genannten Befehle. Damit das wirkt, musst du dich neu am Server anmelden. Diese Freigabe ist gleichwertig mit Administratorrechten und gilt dauerhaft. Rückgängig machst du sie mit sudo gpasswd -d <benutzer> <gruppe>, die Gruppe nennt die Ausgabe von install.

Ausgabe#

  • Fortschrittsmeldungen erscheinen auf der Fehlerausgabe (stderr): ==> für einen Schritt, eingerückte Zeilen für Details, [ ok ], [warn] und error:.
  • Berichte wie status, doctor, Tabellen und JSON erscheinen auf der Standardausgabe (stdout). So kannst du sie in Dateien umleiten oder weiterverarbeiten.
  • Farben gibt es nur, wenn die Ausgabe ein Terminal ist. Mit der Umgebungsvariable NO_COLOR schaltest du sie ganz ab.

Exit-Codes#

Code Bedeutung
0 Erfolg. Warnungen ([warn]) ändern daran nichts.
1 Fehler, fehlgeschlagene Prüfung oder abgebrochene Eingabe. Andere Codes gibt es nicht.

Rückfragen und der Betrieb ohne Terminal#

Rückfragen lesen direkt vom Terminal, nicht von der Standardeingabe. Eine umgeleitete Eingabe (< /dev/null) unterdrückt sie deshalb nicht, nur das Fehlen eines Terminals, etwa in einem Skript, einem geplanten Task oder einer automatischen Einrichtung.

Ohne Terminal gilt:

Situation Verhalten
Lizenzschlüssel bei install Fehler, ausser --license ist angegeben oder der Server ist bereits aktiviert.
Name des Hauptservers local
Domain und Zertifikat nicht eingerichtet, Zugriff nur direkt auf dem Server
E-Mail des ersten Administrators [email protected]
Branding bleibt leer
Fehlende DNS-Einträge (nur Cloudflare mit hinterlegtem Schlüssel) werden automatisch angelegt
extension install, extension update laufen ohne Bestätigung, empfohlene Modelle werden installiert, der Rechner wird automatisch gewählt, Zugangsdaten werden nicht abgefragt
restore, uninstall, extension remove, extension prune Fehler, ausser --yes bzw. -y ist angegeben

Esc oder Ctrl+C in einer Rückfrage bricht den Befehl ab. Bereits erledigte Schritte bleiben erhalten, alle Befehle lassen sich gefahrlos wiederholen.

Gleichzeitige Befehle#

Befehle, die etwas verändern, sperren die Installation, solange sie laufen. Ein zweiter solcher Befehl wartet und nennt, worauf er wartet:

==> Waiting for `aictl update` (pid 1234, running for 3m) to finish…

Brichst du das Warten mit Ctrl+C ab, wurde nichts verändert. In den Tabellen unten steht bei jedem Befehl, ob er sperrt.

Auch eine geplante Aufgabe einer Erweiterung kann der Grund fürs Warten sein. Sie hält nur ihre eigene Erweiterung auf: Befehle, die Erweiterungen verändern oder die Plattform anhalten, warten, bis sie fertig ist. restore, uninstall und extension remove warten nicht, sondern brechen die laufende Aufgabe ab.

Lizenz-Sperre#

Ist die Lizenz eingeschränkt, abgelaufen oder ungültig, verweigern Befehle, die etwas Neues einspielen, den Dienst. Die laufende Plattform bleibt davon unberührt. Betroffen sind update, apply, model install, extension install, extension update sowie start und restart, wenn sie fehlende Teile neu aufbauen müssen. Mehr dazu unter Lizenz.

Einrichten und Lebenszyklus#

install#

Installiert die Plattform oder bringt eine bestehende Installation in Ordnung. Beliebig oft wiederholbar: Ein erneuter Aufruf übernimmt die gespeicherten Einstellungen, und jede angegebene Option ändert nur genau diesen Wert.

sudo aictl install [optionen]
Option Standard Bedeutung
--license <schlüssel> – Lizenzschlüssel LIC-XXXX-XXXX-XXXX-XXXX, in Grossbuchstaben. Ohne Angabe wird der Schlüssel verwendet, mit dem der Server bereits aktiviert ist. Nur ein neuer Server fragt danach.
--base-domain <domain> – Domain, unter der die Plattform erreichbar ist, zum Beispiel ki.firma.ch. Ohne Domain nur direkter Zugriff auf dem Server.
--internal aus Betrieb nur im internen Netz.
--external aus Betrieb aus dem Internet erreichbar (Standard), nimmt --internal zurück.
--tls-mode auto|provided – auto: automatisches Zertifikat von Let's Encrypt. provided: eigenes Zertifikat, das du vorher mit proxy set-cert hinterlegst.
--dns-provider <anbieter> – DNS-Anbieter für automatische Zertifikate, zum Beispiel cloudflare. Den Zugangsschlüssel setzt du danach mit secret set.
--acme-email <e-mail> – Kontaktadresse für automatische Zertifikate.
--auth-admin-email <e-mail> Rückfrage, sonst [email protected] Anmeldeadresse des ersten Administrators. Wirkt nur bei der allerersten Installation.
--brand-name <name> Rückfrage Firmenname auf der Anmeldeseite, im Chat und in den Erweiterungen.
--brand-logo-url <url> Rückfrage Öffentliche Adresse des Logos, PNG oder JPEG.
--brand-favicon-url <url> Rückfrage Öffentliche Adresse des Favicons, PNG oder JPEG.
--node-name <name> Rückfrage, sonst local Name der Modell-Engine des Hauptservers. Kleinbuchstaben, Ziffern, Bindestriche.
--bind-address <ip> 127.0.0.1 Netzwerkadresse der direkten Zugänge zu den Bausteinen. 0.0.0.0 öffnet sie für alle Netze, ohne Anmeldung. Nur für Entwicklung.
--spec <datei> – Startet von einer Einstellungsdatei. Sie ersetzt die gespeicherten Einstellungen vollständig. Fehlen Domain oder installierte Erweiterungen, bricht die Installation ab.
--health-wait <dauer> 10m Wie lange auf den Start der Plattform gewartet wird. Die erste Installation braucht einige Minuten.
  • sudo: ja. Sperrt: ja. Lizenz: aktiviert die Lizenz bei jedem Aufruf. Ist der Lizenzserver nicht erreichbar, läuft eine erneute Installation mit der bestehenden, noch gültigen Aktivierung weiter. Eine erste Aktivierung braucht den Lizenzserver.
  • Zwei weitere Optionen für Spezialfälle (Netzwerkadresse der Modell-Engine, Lesezugriff ohne sudo abschalten) zeigt sudo aictl install --help. Erklärt sind sie in der Entwicklerdokumentation im Kapitel «Stack anpassen».
  • Gibst du eine der Optionen --base-domain, --internal, --external, --tls-mode, --dns-provider oder --acme-email an, entfallen alle Rückfragen zu Domain und Zertifikat.
  • Mit - als Wert entfernst du eine Einstellung, zum Beispiel --base-domain -. Domain und DNS-Anbieter werden wie in der Rückfrage geprüft.
  • Ein leerer Wert wie --base-domain "" löscht nichts. Um eine Domain zu entfernen, passt du die Einstellungsdatei an.
  • Am Ende zeigt install eine Zusammenfassung mit den Adressen und dem Passwort des ersten Administrators. Bleibt eine Prüfung rot, endet der Befehl mit Code 1.
# Interaktiv, fragt nach dem Lizenzschlüssel
sudo aictl install

# Unbeaufsichtigt, mit Domain und automatischem Zertifikat
sudo aictl install --license LIC-XXXX-XXXX-XXXX-XXXX \
  --base-domain ki.firma.ch --tls-mode auto --dns-provider cloudflare

Details: Installation.

update#

Prüft, ob es eine neue Version von aictl gibt, aktualisiert sich bei Bedarf selbst und bringt danach die Plattform auf den gewünschten Stand. Deine Daten bleiben erhalten.

sudo aictl update [optionen]
Option Standard Bedeutung
--dry-run aus Zeigt nur, ob eine neue Version bereitsteht und welche Bausteine sich ändern würden. Ändert nichts.
--force aus Führt den vollständigen Abgleich auch dann aus, wenn es nichts Neues gibt.
--pull aus Lädt neue Fassungen der Plattform-Bestandteile vorab herunter.
--spec <datei> gespeicherte Einstellungen Übernimmt eine neue Einstellungsdatei. Sie ersetzt die gespeicherte vollständig: Was darin fehlt, fällt auf den Standard zurück. Fehlen Domain oder installierte Erweiterungen, bricht das Update ab.
--health-wait <dauer> 10m Wie lange auf den Start gewartet wird.
  • sudo: ja. Sperrt: ja, nach der Selbstaktualisierung. Lizenz: der Abgleich ist gesperrt, wenn die Lizenz eingeschränkt ist.
  • Gibt es keine neue Version und haben sich die Einstellungen nicht geändert, meldet update «nothing to do» und startet nichts neu. apply gleicht in diesem Fall trotzdem ab, --force ebenso.
  • Erweiterungen bleiben auf ihrer Version. Neue Versionen holst du mit extension update.
sudo aictl update --dry-run
sudo aictl update

update enable

Schaltet automatische Updates ein. Der Hintergrunddienst prüft im gewählten Rhythmus und führt bei einer neuen Version aictl update aus.

sudo aictl update enable [--interval <dauer>]
Option Standard Bedeutung
--interval <dauer> 7d Prüfrhythmus, zum Beispiel 24h, 3d oder 2w. Mindestens 1h.

Die erste Prüfung erfolgt kurz nach dem Einschalten. sudo: ja.

update disable

Schaltet automatische Updates aus. Die Plattform läuft unverändert weiter. sudo: ja.

update status

Zeigt, ob automatische Updates aktiv sind, wann zuletzt geprüft wurde und wann die nächste Prüfung fällig ist. sudo: ja.

backup#

Schreibt ein vollständiges Backup in einen Ordner. Plattform und Erweiterungen werden dafür kurz angehalten und danach wieder gestartet.

sudo aictl backup [--backup-dir <ordner>] [--keep <anzahl>] [--skip-space-check]
Option Standard Bedeutung
--backup-dir <ordner> ~/aictl-backup-<zeitstempel> Zielordner. Mit sudo liegt ~ im Heimverzeichnis von root, also /root. Verwende immer einen neuen, leeren Ordner.
--keep <anzahl> 0 (alle behalten) Löscht danach ältere Backups dieses Servers im selben übergeordneten Ordner und behält die neuesten, das eben geschriebene eingerechnet. Details: Alte Backups aufräumen.
--skip-space-check aus Schreibt das Backup, auch wenn am Ziel weniger Platz frei ist als alle Daten unkomprimiert, der Datenbankexport und 1 GiB Reserve brauchen.
  • sudo: ja. Sperrt: ja.
  • Am Ende steht der Befehl zum Wiederherstellen in der Ausgabe.
sudo aictl backup --backup-dir /mnt/backup/ki-$(date +%F)

Details: Backup und Wiederherstellung.

restore#

Stellt eine Installation aus einem Backup-Ordner wieder her. Überschreibt alle aktuellen Daten.

sudo aictl restore <backup-ordner> [optionen]
Option Standard Bedeutung
--skip-current-backup aus Sichert den aktuellen Stand vorher nicht.
--skip-space-check aus Sichert den aktuellen Stand auch, wenn die Platzprüfung von backup es ablehnen würde.
-y, --yes aus Bestätigt ohne Rückfrage und sichert den aktuellen Stand ohne Rückfrage.
--health-wait <dauer> 10m Wie lange auf den Start gewartet wird.
  • sudo: ja. Sperrt: ja, nach der Bestätigung.
  • Vor dem Überschreiben bietet restore ein Backup des aktuellen Stands an. Dieses landet immer im Standardordner ~/aictl-backup-<zeitstempel>.
  • Ein abgebrochenes restore wiederholst du mit demselben Befehl. status weist darauf hin.
sudo aictl restore /mnt/backup/ki-2026-10-01

uninstall#

Erstellt ein Backup und entfernt danach die Plattform. Ohne --keep-data werden alle Daten, die Einstellungen und die Lizenzaktivierung gelöscht.

sudo aictl uninstall [optionen]
Option Standard Bedeutung
--backup-dir <ordner> ~/aictl-backup-<zeitstempel> Zielordner des Backups. Er darf nicht in /etc/aictl oder /var/lib/aictl liegen.
--keep-data aus Entfernt nur die laufenden Programme. Daten, Einstellungen und Lizenz bleiben.
--skip-backup aus Erstellt vorher kein Backup.
--skip-space-check aus Erstellt das Backup, auch wenn die Platzprüfung von backup es ablehnen würde.
-y, --yes aus Bestätigt ohne Rückfrage.
  • sudo: ja. Sperrt: ja.
  • Nicht entfernt werden: das Programm aictl, die Modell-Engine mit ihren Modellen und alle Backups.
  • Ohne --keep-data gibt der Befehl die Lizenz auf dem Lizenzserver frei, damit du sie auf einem anderen Server aktivieren kannst. Schlägt das fehl, warnt er und entfernt die Plattform trotzdem.
  • Auf einem Modell-Rechner meldet uninstall den Rechner beim Hauptserver ab, macht die Modell-Engine wieder nur auf dem Rechner selbst erreichbar und löscht die Einstellungen. Ein Backup gibt es dort nicht, --keep-data ist nicht erlaubt. Die Modell-Engine und ihre Modelle bleiben.
sudo aictl uninstall
sudo aictl uninstall --keep-data

Betrieb#

apply#

Übernimmt geänderte Einstellungen, zum Beispiel nach proxy hostname, secret set, proxy set-cert oder brand edit. Nur Bausteine, deren Konfiguration sich geändert hat, werden neu gestartet. Holt keine neue Version und übernimmt keine neue Einstellungsdatei.

sudo aictl apply [optionen]
Option Standard Bedeutung
--bind-address <ip> aktueller Wert Ändert die Netzwerkadresse der direkten Zugänge: 127.0.0.1 nur lokal, 0.0.0.0 alle Netze.
--health-wait <dauer> 10m Wie lange auf den Start gewartet wird.
  • sudo: ja. Sperrt: ja. Lizenz: gesperrt, wenn die Lizenz eingeschränkt ist.
  • apply bietet an, DNS-Einträge für neu veröffentlichte Adressen anzulegen.
  • Ein mit stop angehaltener Betrieb wird durch apply wieder gestartet.
sudo aictl secret set MEIN_TOKEN
sudo aictl apply

start, stop, restart#

Startet, stoppt oder startet die Plattform neu, ohne etwas zu entfernen.

sudo aictl stop    [dienst|erweiterung|erweiterung/dienst …]
sudo aictl start   [dienst|erweiterung|erweiterung/dienst …]
sudo aictl restart [dienst|erweiterung|erweiterung/dienst …]

Ohne Namen betrifft der Befehl die ganze Plattform inklusive Erweiterungen:

  • stop hält alles an und merkt sich das. Die Plattform bleibt auch über Neustarts des Servers hinweg aus, bis du start ausführst. Der Hintergrunddienst läuft weiter.
  • start hebt den Stopp auf und startet alles wieder. Fehlen Teile, baut start sie neu auf. Das ist dann lizenzgesperrt und dauert länger.
  • restart hebt einen Stopp ebenfalls auf und startet alles neu.

Mit Namen betrifft der Befehl nur diese Dienste und gilt nur vorübergehend:

Name Bedeutung
<dienst> ein Baustein der Plattform, mit dem Namen, den sudo aictl status im Abschnitt «Core services» anzeigt
<erweiterung> alle Dienste einer Erweiterung, zum Beispiel protocol
<erweiterung>/<dienst> ein Dienst einer Erweiterung, so wie status ihn anzeigt

Ein unbekannter Name führt zu einer Fehlermeldung, die alle gültigen Namen auflistet.

  • Ein einzeln gestoppter Dienst der Plattform läuft nach spätestens etwa 30 Sekunden wieder, weil der Hintergrunddienst ihn startet.
  • Ein einzeln gestoppter Dienst einer Erweiterung bleibt aus, bis du start, apply oder update ausführst.
  • sudo: ja. Sperrt: ja.
sudo aictl restart protocol/worker
sudo aictl stop
sudo aictl start

serve#

Der Hintergrunddienst der Plattform. Er wird bei der Installation eingerichtet und läuft automatisch, du startest ihn normalerweise nicht von Hand.

sudo aictl serve [--reconcile-interval <dauer>]
Option Standard Bedeutung
--reconcile-interval <dauer> 30s Wie oft der Dienst die Plattform abgleicht. Muss grösser als 0 sein.
  • Läuft der Dienst bereits, scheitert ein zweiter Aufruf, weil der Port 7700 belegt ist.
  • Den eingerichteten Dienst steuerst du mit sudo systemctl status|start|restart aictl, seine Meldungen siehst du mit journalctl -u aictl.

Prüfen und Diagnose#

status#

Prüft alle Bausteine, die Erweiterungen, die Modell-Engine, die Anmeldung, die angehängten Rechner, Lizenz, Speicherplatz und Zertifikat. Endet mit Code 1, sobald eine Prüfung fehlschlägt. Warnungen ändern den Code nicht.

aictl status [--json]
Option Standard Bedeutung
--json aus Gibt die Prüfungen als JSON aus. Der Exit-Code bleibt gleich.
  • sudo: nein für die bei install freigeschaltete Person, sonst ja.
  • Ist die Plattform mit stop angehalten, meldet status nur das und endet mit Code 0.
  • JSON-Felder je Prüfung: group (Abschnitt), name, ok, warn (nur bei Warnungen), detail.
aictl status
aictl status --json > status.json

doctor#

Prüft die Umgebung, von der die Plattform abhängt: Laufzeitumgebung, Hintergrunddienst, belegte Ports, freien Speicherplatz, Zugangsdaten für automatische Zertifikate, die Schlüssel der KI-Zentrale, die Modell-Engine und die Erreichbarkeit des Lizenzservers. Zu jedem Problem nennt doctor eine Lösung in einer Zeile fix:.

sudo aictl doctor
  • Kurzform: diagnose. sudo: ja.
  • Endet nur bei einem Fehler ([FAIL]) mit Code 1, Warnungen nicht.

logs#

Zeigt die Meldungen der Plattform und ihrer Erweiterungen. status sagt, was nicht stimmt, logs sagt, warum.

sudo aictl logs [dienst|erweiterung|erweiterung/dienst …] [optionen]
Option Standard Bedeutung
-f, --follow aus Zeigt neue Meldungen live, bis Ctrl+C.
-n, --tail <anzahl> 200 Anzahl der letzten Zeilen pro Dienst, all für alle.
--since <zeit> – Nur Meldungen seit einem Zeitpunkt oder einer Dauer, zum Beispiel 10m oder 1h.
  • Ohne Namen erscheinen die Meldungen aller Dienste. Die Namen sind dieselben wie bei start, stop und restart.
  • Stammen die Meldungen aus mehreren Bereichen, beginnt jede Zeile mit core/ oder dem Namen der Erweiterung.
  • sudo: ja.
sudo aictl logs -f
sudo aictl logs protocol -n 50 --since 10m
sudo aictl logs protocol/worker

license#

Zeigt und prüft die Lizenz.

Befehl Bedeutung sudo
license check Fragt den aktuellen Stand direkt beim Lizenzserver ab. Ändert nichts. Endet mit einem Fehler, wenn die Lizenz nicht aktiv ist. nein für die freigeschaltete Person
license info Zeigt den auf dem Server gespeicherten Stand: Plan, Erweiterungen, Laufzeit, Update-Zeitraum, Benutzerlimit, Zustand. Funktioniert ohne Internet, die Werte können veraltet sein. aictl license ohne Unterbefehl zeigt dasselbe. nein für die freigeschaltete Person
license renew Holt die Lizenz sofort neu, etwa nach dem Kauf einer Erweiterung, statt auf die nächste automatische Bestätigung (bis zu 12 Stunden) zu warten. Zeigt danach Plan, Erweiterungen, Laufzeit, Update-Zeitraum, Benutzerlimit und Schnittstelle. Meldet neu freigeschaltete Erweiterungen und verfügbare Updates, installiert aber nichts. ja
aictl license info
sudo aictl license renew

Den Lizenzschlüssel zeigen alle drei Befehle nur mit seinen letzten vier Zeichen.

Details: Lizenz.

spec show#

Zeigt die vollständige Konfiguration, mit der die Installation läuft: die Standardwerte von aictl zusammen mit deinen Einstellungen aus /etc/aictl/spec.yaml. Jeder Wert aus deiner Einstellungsdatei ist mit # set in spec.yaml markiert. Alle anderen sind Standardwerte und können sich mit dem nächsten aictl update ändern.

aictl spec show
  • sudo: nein für die freigeschaltete Person.
  • Ist die Einstellungsdatei fehlerhaft, nennt der Befehl den Fehler, statt etwas auszugeben.
  • Gibt es noch keine Einstellungsdatei, zeigt er die Standardwerte.

version#

Zeigt Version, Build-Informationen, die neueste verfügbare Version von aictl und, mit sudo, die installierten Erweiterungen mit ihrem Zustand. Lege diese Ausgabe jeder Support-Anfrage bei.

aictl version
sudo aictl version
  • sudo: nein. Die Liste der Erweiterungen erscheint nur mit sudo.
  • Die Zeile «latest» fragt den Server höchstens 5 Sekunden lang. Ohne Antwort steht dort «unknown».
  • aictl --version zeigt nur den Versionsblock, ohne Abfrage beim Server.

Mehrere Rechner#

join#

Macht einen weiteren Rechner zum Modell-Rechner. Wird auf dem neuen Rechner ausgeführt. Installiert dort nur die Modell-Engine und meldet den Rechner beim Hauptserver an.

sudo aictl join <adresse-des-hauptservers> --token <token> --fingerprint <fingerabdruck> --name <name> [optionen]
Option Standard Bedeutung
--name <name> – (Pflicht) Eindeutiger Name, 1 bis 63 Zeichen aus Kleinbuchstaben, Ziffern und Bindestrichen.
--token <token> – (Pflicht) Beitritts-Token des Hauptservers, siehe node join-command. Gilt standardmässig eine Stunde.
--fingerprint <wert> – (Pflicht) Fingerabdruck des Hauptservers. join bricht ab, bevor es das Token sendet, wenn der Hauptserver einen anderen vorweist.
--advertise <adresse> automatisch Adresse, unter der der Hauptserver diesen Rechner erreicht, etwa eine VPN-Adresse. Ein anderer Port als 11434 braucht eine Weiterleitung auf 11434.
  • sudo: ja. Sperrt: ja.
  • Eine weitere Option legt die Version der Modell-Engine fest, siehe sudo aictl join --help. Eine bereits vorhandene Modell-Engine wird nie verändert.
  • Funktioniert nicht auf dem Hauptserver selbst.
  • Am bequemsten erzeugst du den vollständigen Befehl auf dem Hauptserver mit node join-command.
sudo aictl join https://10.0.0.5:7700 --token <token> --fingerprint sha256:<fingerabdruck> --name gpu-1

node#

Verwaltet die Modell-Rechner. Alle Befehle laufen auf dem Hauptserver und brauchen sudo.

Befehl Bedeutung Sperrt
node ls [--json] Zeigt alle Rechner mit Adresse, Zustand und Anzahl Modelle. Kurzform list. nein
node join-command [name] [--host <adresse>] [--ttl <dauer>] Gibt den fertigen join-Befehl für einen neuen Rechner aus, mit Adresse, Fingerabdruck und einem neuen Token, das eine Stunde gilt. --ttl ändert die Dauer, höchstens 168h. Ohne Name bleibt ein Platzhalter <name> stehen. --host ersetzt die automatisch ermittelte Adresse des Hauptservers. nein
node token [--ttl <dauer>] [--revoke-all] Erzeugt ein neues Beitritts-Token. --revoke-all macht stattdessen alle offenen Tokens ungültig. nein
node drain <name> Nimmt einen Rechner aus der Verteilung, etwa für Wartung. Er bleibt angemeldet. ja
node undrain <name> Nimmt ihn wieder in die Verteilung auf. ja
node rm <name> Meldet einen Rechner ab. Die Modelle darauf werden nicht mehr verwendet, der Rechner selbst bleibt unverändert. Kurzform remove. ja
  • Der Hauptserver selbst (Standardname local) lässt sich weder entfernen noch aus der Verteilung nehmen.
  • node join-command und node token geben ein Geheimnis aus. Behandle die Ausgabe vertraulich.
  • JSON von node ls: name, endpoint, reachable, version, drained, models.
sudo aictl node join-command gpu-1
sudo aictl node drain gpu-1

model#

Installiert, zeigt und entfernt Sprachmodelle. Alle Befehle brauchen sudo.

Befehl Bedeutung
model install <modell> [--node <name>] Lädt ein Modell auf einen Rechner, standardmässig auf den Hauptserver, und stellt es bereit. Kurzform pull. Lizenzgesperrt.
model ls [--json] Zeigt alle bereitgestellten Modelle und die Rechner, auf denen sie laufen. Kurzform list.
model rm <modell> [--node <name>] Entfernt ein Modell von einem Rechner, standardmässig vom Hauptserver. Kurzform remove. Nie lizenzgesperrt, damit du immer Speicherplatz freigeben kannst.
  • Bricht ein Download fünf Minuten lang ohne Fortschritt ab, endet model install mit einem Fehler. Wiederhole den Befehl später.
  • Ein Modell auf einem Rechner, der aus der Verteilung genommen ist, wird installiert, aber nicht verwendet, bis du node undrain ausführst.
  • model ls zeigt nur Modelle auf erreichbaren Rechnern in der Verteilung.
sudo aictl model install <modell>
sudo aictl model install <modell> --node gpu-1
sudo aictl model rm <modell> --node gpu-1

Details: Modelle und Rechner.

Erweiterungen und Einstellungen#

auth info#

Zeigt die Adresse der Benutzerverwaltung, das erste Administrationskonto, den Notzugang zur KI-Zentrale, den Zugang zum Wissensspeicher und wie jeder veröffentlichte Bereich geschützt ist.

sudo aictl auth info [--show-password]
Option Standard Bedeutung
--show-password aus Zeigt zusätzlich die Passwörter des ersten Administrators (akadmin) und des Notzugangs zur KI-Zentrale (aictl-admin) sowie den Schlüssel des Wissensspeichers. Er öffnet alle Sammlungen, behandle ihn vertraulich.
  • sudo: ja.
  • Das angezeigte Passwort von akadmin ist das ursprüngliche. Hast du es in der Benutzerverwaltung geändert, gilt das neue.

brand#

Zeigt oder ändert Firmenname, Logo und Favicon. Beide Befehle brauchen sudo.

sudo aictl brand show
sudo aictl brand edit [optionen]
Option von brand edit Bedeutung
--name <name> Firmenname.
--logo-url <url> Öffentliche Adresse des Logos, PNG oder JPEG. Wird sofort heruntergeladen.
--favicon-url <url> Öffentliche Adresse des Favicons, PNG oder JPEG.
--clear-logo Entfernt das Logo.
--clear-favicon Entfernt das Favicon.
  • Ohne Option fragt brand edit jeden Wert ab, vorausgefüllt mit dem aktuellen. Enter behält ihn, ein geleertes Feld entfernt ihn.
  • Mit Optionen ändert brand edit nur diese Werte. Sperrt: ja.
  • Danach mit sudo aictl apply übernehmen. Details: Branding.

extension#

Verwaltet die Erweiterungen deiner Lizenz. Alle Befehle ausser extension lint und extension override lint brauchen sudo.

extension catalog

Zeigt alle Erweiterungen, die deine Lizenz freischaltet, und ob sie installiert sind. Funktioniert ohne Internet. Fehlt eine eben gekaufte Erweiterung, hole sie mit sudo aictl license renew.

extension install

Lädt eine Erweiterung, prüft sie und richtet sie ein.

sudo aictl extension install <name> [optionen]
Option Standard Bedeutung
--version <version> neueste erlaubte Installiert genau diese Version, auch eine ältere. Mit allen drei Teilen schreiben, zum Beispiel 1.2.0. Ein v davor wird entfernt, andere Angaben lehnt der Befehl ab.
--yes aus Keine Rückfragen: fortfahren, alle empfohlenen Modelle installieren, optionale Zugangsdaten überspringen. Pflicht-Zugangsdaten setzt du vorher mit secret set.
  • Sperrt: ja, ausser während der Rückfragen. Lizenz: gesperrt, wenn die Lizenz eingeschränkt ist oder die Erweiterung nicht enthält.
  • Vor dem Herunterladen müssen mindestens 6 GiB frei sein.
  • Ist die Erweiterung schon installiert, wirkt install wie ein Update. Ohne --version geht es nie auf eine ältere Version zurück.

extension ls

Zeigt die installierten Erweiterungen mit installierter und neuester Version sowie Zustand. Kurzform list.

sudo aictl extension ls [--json]
  • Ist der Lizenzserver nicht erreichbar, steht bei der neuesten Version unknown.
  • JSON-Felder: name, installed, pinned, latest, updateAvailable, status.

extension update

Bringt eine oder alle Erweiterungen auf die neueste Version, die deine Lizenz erlaubt.

sudo aictl extension update [name] [optionen]
Option Standard Bedeutung
--force aus Richtet die Erweiterung auch dann neu ein, wenn sie schon aktuell ist. Lädt dabei nichts neu herunter.
--yes aus Keine Rückfragen, wie bei install.
  • Eine aktuelle Erweiterung wird nicht angefasst, nichts wird neu gestartet.
  • Ohne Name werden alle aktualisiert. Scheitert eine, laufen die anderen weiter, und der Befehl endet am Schluss mit Code 1.
  • Sperrt: ja, ausser während der Rückfragen. Lizenz: gesperrt, wenn die Lizenz eingeschränkt ist.

extension remove

Entfernt eine Erweiterung. Daten, Zugangsdaten und Modelle bleiben erhalten, damit eine Neuinstallation sie wiederfindet. Kurzform rm.

sudo aictl extension remove <name> [optionen]
Option Standard Bedeutung
--purge aus Löscht zusätzlich alle Daten und Zugangsdaten der Erweiterung endgültig. Modelle bleiben.
--yes aus Bestätigt ohne Rückfrage.
--force aus Entfernt die Erweiterung auch, wenn ihr Aufräumschritt vor dem Herunterfahren scheitert.
  • Die Rückfrage hat ohne --purge die Vorgabe Ja, mit --purge die Vorgabe Nein. Lehnst du ab, endet der Befehl mit Code 0, ohne etwas zu entfernen.
  • Mit --purge funktioniert der Befehl auch für eine Erweiterung, die schon mit einem einfachen remove entfernt wurde. Er löscht dann alles, was sie hinterlassen hat.
  • Sperrt: ja. Nicht lizenzgesperrt.

extension prune

Löscht Datenbereiche, die frühere Versionen einer Erweiterung hinterlassen haben und die kein Dienst mehr verwendet. Fragt vor dem Löschen.

sudo aictl extension prune [name] [--yes]
  • Ohne Name werden alle installierten Erweiterungen geprüft. Der Name einer entfernten Erweiterung nimmt ihre zurückgelassenen Datenbereiche. Datenbank und Zugangsdaten löscht extension remove <name> --purge.
  • Die Vorgabe der Rückfrage ist Nein. Gelöschte Daten sind endgültig weg.
  • Sperrt: ja.

extension env

Zeigt pro Dienst einer installierten Erweiterung, welche Einstellungen sie von der Plattform erhält. Nur Namen, nie Werte.

sudo aictl extension env <name>

extension lint

Prüft ein Erweiterungspaket offline, ohne Lizenz und ohne sudo. Gedacht für Entwickler. Ohne Ordner wird der aktuelle geprüft. Endet bei jedem Problem mit Code 1.

aictl extension lint [ordner]

extension override lint

Prüft die eigene Anpassungsdatei einer installierten Erweiterung so, wie apply sie übernehmen würde, und listet jede Änderung auf. Ohne Name werden alle Anpassungsdateien geprüft. Endet bei jedem Problem mit Code 1.

aictl extension override lint [name]

Details: Erweiterungen verwalten.

proxy#

Verwaltet das Gateway: welche Bereiche unter welcher Adresse erreichbar sind und welches Zertifikat verwendet wird. Beide Befehle brauchen sudo.

proxy hostname

Legt fest, welche Bereiche veröffentlicht sind und unter welcher Subdomain. Ohne Option öffnet sich eine Auswahl im Terminal.

sudo aictl proxy hostname [--set <schlüssel>=<subdomain> …]
Option Bedeutung
--set <schlüssel>=<subdomain> Veröffentlicht einen Bereich unter dieser Subdomain oder benennt ihn um. Mehrfach verwendbar. <schlüssel>=- oder <schlüssel>= nimmt ihn vom Netz.
Bereich Standard
Firmen-Login auth, veröffentlicht
Chat chat, veröffentlicht
Automationen eigene Subdomain, veröffentlicht
KI-Zentrale (Administration) api, nicht veröffentlicht
Wissensspeicher eigene Subdomain, nicht veröffentlicht
Websuche search, nicht veröffentlicht
Bereich einer Erweiterung wie von der Erweiterung vorgegeben, veröffentlicht
  • Den Schlüssel eines Bereichs für --set zeigt die interaktive Auswahl in jeder Zeile. Für den Firmen-Login ist es auth, für den Chat chat, für Erweiterungen <erweiterung>/<dienst>.
  • Eine Subdomain ist ein einzelnes Wort aus Kleinbuchstaben, Ziffern und Bindestrichen, zum Beispiel ki oder notizen.
  • Setzt eine Domain voraus, siehe install --base-domain. Sperrt: ja.
  • Danach mit sudo aictl apply übernehmen.
sudo aictl proxy hostname
sudo aictl proxy hostname --set chat=ki --set protocol/app=-
sudo aictl proxy hostname --set protocol/app=notizen

proxy set-cert

Hinterlegt ein eigenes Zertifikat für den Modus provided. Funktioniert auch vor der Installation.

sudo aictl proxy set-cert --cert <datei> [--key <datei>] [--ca <datei>] [passwort-option]
Option Bedeutung
--cert <datei> Pflicht. Zertifikat im PEM-Format (Zertifikat, optional mit Kette) oder ein PFX/PKCS#12-Paket (.pfx, .p12).
--key <datei> Privater Schlüssel im PEM-Format. Bei PFX weglassen.
--ca <datei> Stammzertifikat einer eigenen Zertifizierungsstelle, wenn die Zertifikatsdatei es nicht enthält. PEM, DER oder PKCS#7. Zwischenzertifikate darin kommen in die ausgelieferte Kette.
--password-stdin Liest das Passwort von der Standardeingabe. Empfohlen.
--password-file <datei> Liest das Passwort aus einer Datei.
--password <passwort> Passwort direkt. Bleibt im Verlauf der Shell sichtbar.
  • Nur für verschlüsselte Schlüssel und PFX nötig: genau eine Passwort-Option.
  • Empfohlen ist ein Wildcard-Zertifikat *.<domain>, damit jede Subdomain abgedeckt ist.
  • Lässt sich das Zertifikat nicht bis zu einem vertrauenswürdigen Stammzertifikat prüfen, lehnt set-cert es ab.
  • Danach mit sudo aictl apply übernehmen.
printf %s "$PW" | sudo aictl proxy set-cert --cert fullchain.pem --key privkey.pem --password-stdin
sudo aictl proxy set-cert --cert firma.pfx --password-file pw.txt

Details: Domain und Zertifikate.

secret#

Verwaltet Zugangsdaten, die du für Erweiterungen oder automatische Zertifikate hinterlegst. Alle Befehle brauchen sudo.

secret set

Speichert einen Wert unter einem Namen wie MEIN_API_TOKEN.

sudo aictl secret set <NAME> [optionen]
Option Bedeutung
keine Fragt den Wert verdeckt im Terminal ab.
--from-file <datei> Liest den Wert aus einer Datei. Ein Zeilenumbruch am Ende wird entfernt.
--stdin Liest den Wert von der Standardeingabe. Ein Zeilenumbruch am Ende wird entfernt.
--from-env <variable> Übernimmt den Wert aus einer Umgebungsvariable.
--value <wert> Wert direkt. Bleibt im Verlauf der Shell sichtbar.
  • Höchstens eine dieser Optionen.
  • Namen bestehen aus Grossbuchstaben, Ziffern und Unterstrichen und beginnen nicht mit einer Ziffer.
  • Werte müssen einzeilig sein. Mehrzeiliges wie einen PEM-Schlüssel kodierst du vorher in Base64.
  • Namen, die mit AICTL_ oder AUTH_EXT_ beginnen, erzeugt die Plattform selbst und lehnt sie ab.
  • Sperrt: ja, erst nach der Eingabe. Danach mit sudo aictl apply übernehmen.
sudo aictl secret set MEIN_API_TOKEN
printf %s "$TOKEN" | sudo aictl secret set MEIN_API_TOKEN --stdin

secret ls

Zeigt die Namen aller gespeicherten Zugangsdaten, nie die Werte. Kurzform list. Die Spalte SET BY zeigt, ob du (you) oder die Plattform (aictl) den Wert gesetzt hat. STATUS zeigt empty, stored (noch nicht übernommen) oder applied.

secret rm

Entfernt einen oder mehrere gespeicherte Werte. Kurzform remove. Werte der Plattform lassen sich nicht entfernen. Sperrt: ja.

sudo aictl secret rm MEIN_API_TOKEN ALTER_TOKEN
sudo aictl apply

Details: Zugangsdaten.

Nicht gefunden, was du suchst?

Unser Support hilft dir gerne weiter.

Support kontaktieren

Dokumentation durchsuchen

Esc

    Gesucht wird in Titeln und im Text aller Kapitel.