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
| Unterbefehl | Was er tut |
|---|
start | Startet den Server (Standard). Ein bloßes ipmideck ohne Unterbefehl bedient ebenfalls. |
serve | Veralteter Alias von start. Verhält sich identisch; beibehalten, damit bestehende Skripte weiter funktionieren. |
reset-password | Erstellt 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.
| Flag | Wirkung |
|---|
--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. |
--demo | Im Demo-Modus mit simulierten Daten ausführen. |
--config <path> | Pfad zu einer zu ladenden config.yaml. |
--reload | Auto-Reload für die Entwicklung aktivieren. |
--gen-cert | Erzeugt 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:
- Ein explizites
--host- / --port-Flag auf der Kommandozeile.
- Die Konfiguration, die selbst die Umgebungsvariable (
IPMIDECK_SERVER_HOST / IPMIDECK_SERVER_PORT)
über config.yaml über die eingebaute Voreinstellung auflöst.
- 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:
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:
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:
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.
--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-Code | Wann |
|---|
0 | Sauberes Herunterfahren bei Ctrl+C / SIGTERM, der Server stoppt geordnet, kein Traceback. |
1 | Der 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