Zum Hauptinhalt springen
ipmideck liefert einen einzigen Konsolenbefehl, ipmideck, der den Server startet, das Admin-Passwort zurücksetzt oder ein selbstsigniertes Zertifikat erzeugt. ipmilink ist ein rückwärtskompatibler Alias für denselben Befehl, jeder Unterbefehl und jedes Flag unten funktioniert unter beiden Namen identisch.
Das CLI gilt nur, wenn Sie ipmideck direkt ausführen (pip-Installation oder ein Source-Checkout). Das Docker-Image startet uvicorn backend.main:app direkt und ruft das CLI nie auf, sodass keines dieser Flags, die Bind-Priorität oder der Single-Instance-Schutz für den Container gelten. Der Bind des Containers wird durch seinen eigenen Startbefehl gesetzt. Siehe Installation.

Den Server starten

start ist der primäre Serve-Befehl. Ein bloßer Aufruf ohne Unterbefehl verhält sich identisch, diese sind also gleichwertig:
ipmideck start
# or, with no subcommand:
ipmideck
Ohne Flags bindet ipmideck standardmäßig an 0.0.0.0:3000, erreichbar auf jeder Schnittstelle, auf Port 3000. Öffnen Sie http://<your-ip>:3000, sobald er läuft. Überschreiben Sie den Bind mit --host und --port:
ipmideck start --host 127.0.0.1 --port 8080

Unterbefehle

UnterbefehlWas er tut
startStartet den Server (Standard). Ein bloßes ipmideck ohne Unterbefehl bedient ebenfalls.
serveVeralteter Alias von start. Verhält sich identisch; beibehalten, damit bestehende Skripte weiter funktionieren.
reset-passwordErstellt oder aktualisiert interaktiv die Admin-Anmeldung und beendet sich dann, ohne zu bedienen.
serve ist ein veralteter Alias von start, bevorzugen Sie start (oder ein bloßes ipmideck) in neuen Skripten.

Flags

Diese Top-Level-Flags gelten für den Serve-Pfad. --demo und --config werden vor jeder Unterbefehl-Verzweigung gelesen, sodass sie auch reset-password und --gen-cert betreffen.
FlagWirkung
--host <host>Bind-Host. Standard kommt aus config.yaml oder 0.0.0.0. Ein explizites Flag gewinnt über die Konfiguration.
--port <port>Bind-Port. Standard kommt aus config.yaml oder 3000. Ein explizites Flag gewinnt über die Konfiguration.
--demoIm Demo-Modus mit simulierten Daten ausführen.
--config <path>Pfad zu einer zu ladenden config.yaml.
--reloadAuto-Reload für die Entwicklung aktivieren.
--gen-certErzeugt ein selbstsigniertes Zertifikat + Schlüssel unter data/certs/, schreibt die Pfade in config.yaml und beendet sich.

Bind-Priorität

Der Host und Port, an den ipmideck tatsächlich bindet, werden in dieser Reihenfolge aufgelöst, höchste Priorität zuerst:
  1. Ein explizites --host- / --port-Flag auf der Kommandozeile.
  2. Die Konfiguration, die selbst die Umgebungsvariable (IPMIDECK_SERVER_HOST / IPMIDECK_SERVER_PORT) über config.yaml über die eingebaute Voreinstellung auflöst.
  3. Die fest codierte Rückfallebene 0.0.0.0:3000, verwendet, falls das frühe Laden der Konfiguration fehlschlägt.
Mit anderen Worten: Ein Wert, den Sie in config.yaml persistieren, wird von einer IPMIDECK_- Umgebungsvariablen oder einem --host- / --port-Flag beim nächsten Start überschrieben, Umgebung und CLI gewinnen immer. Wenn config.yaml fehlerhaft ist, gibt ipmideck eine Warnung an stderr aus und fällt auf 0.0.0.0:3000 zurück.
Die Umgebungsvariablen IPMIDECK_SERVER_HOST und IPMIDECK_SERVER_PORT verwenden das Präfix IPMIDECK_. Siehe Konfiguration für die vollständige Liste der Überschreibungen.

HTTPS mit —gen-cert

--gen-cert erzeugt ein selbstsigniertes Zertifikat und einen Schlüssel und beendet sich dann. Es startet den Server nicht und schaltet HTTPS nicht von selbst ein:
ipmideck --gen-cert
Es schreibt ein Zertifikat-/Schlüssel-Paar unter data/certs/, trägt deren Pfade in den server-Block von config.yaml ein und gibt drei Zeilen aus:
Generated: <path-to-cert>
Generated: <path-to-key>
Wrote cert_file/key_file to config.yaml. Set server.https=true and restart to serve over HTTPS.
Um tatsächlich über HTTPS zu bedienen, setzen Sie server.https: true in config.yaml und starten ipmideck neu. HTTPS wird nie automatisch aktiviert.

Demo-Modus

--demo führt ipmideck gegen simulierte Hardware statt echter BMCs aus, nützlich, um das Dashboard ohne verbundene Server zu testen:
ipmideck start --demo
Der Demo-Modus wird sehr früh gesetzt, vor jeder Unterbefehl-Verzweigung, sodass die gesamte App (Konfiguration und der laufende Server) ihn sieht.

Das Admin-Passwort zurücksetzen

reset-password erstellt oder aktualisiert interaktiv die Admin-Anmeldung und beendet sich dann, ohne jemals den Server zu starten:
ipmideck reset-password
Es fragt nach Username: und dann New password: (verdeckte Eingabe). Wenn ein Konto bereits existiert, aktualisiert es das Passwort dieses Benutzers und gibt Password updated for <username> aus; andernfalls erstellt es den Benutzer und gibt User <username> created aus.

Auto-Reload für die Entwicklung

--reload ist ein schneller Pfad nur für die Entwicklung: Es übergibt an uvicorns eigenen auto-neuladenden Supervisor und kehrt zurück. Es überspringt absichtlich den Single-Instance-Port-Schutz, der unten beschrieben ist, weil der Reloader seinen eigenen Supervisor-Prozess ausführt.
ipmideck start --reload
--reload ist nur für die Entwicklung. Da es den Single-Instance-Schutz umgeht, führen Sie es auf einem Host aus, auf dem keine andere ipmideck-Instanz bereits an denselben Port gebunden ist.

Exit-Codes

Exit-CodeWann
0Sauberes Herunterfahren bei Ctrl+C / SIGTERM, der Server stoppt geordnet, kein Traceback.
1Der Port ist auf dem Ziel-Host bereits in Verwendung (eine andere Instanz läuft möglicherweise), oder der Bind schlägt fehl, weil die Adresse nicht verfügbar oder nicht erlaubt ist (zum Beispiel ein privilegierter Port oder eine Schnittstelle, die nicht existiert).
Auf dem Serve-Pfad (nicht --reload) führt ipmideck vor dem Binden einen Single-Instance-Schutz aus. Wenn der Port bereits in Verwendung ist, gibt es einen Fehler an stderr aus und beendet sich mit 1. Wenn der Bind fehlschlägt, weil die Adresse nicht verfügbar oder nicht erlaubt ist, gibt es einen eigenen Fehler aus und beendet sich ebenfalls mit 1.

Nächste Schritte

  • Konfiguration: config.yaml-Schlüssel und die IPMIDECK_-Umgebungs-Überschreibungen.
  • Installation: ipmideck mit Docker oder pip installieren.
  • Fehlerbehebung: Verbindungs-, Port- und IPMI-Fehler.