> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ipmideck.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interaktive Konsole

> Steuern Sie einen laufenden ipmideck-Server von Ihrem Terminal aus: eine Operator-Konsole mit angepinntem Header und Einzeltasten-Aktionen für Ausführlichkeit, Sitzungen, Server, die Dashboard-URL und die Bind-Adresse.

Wenn Sie ipmideck in einem Terminal starten, rendert es eine interaktive Operator-Konsole: einen
angepinnten Header mit dem Banner und einer Hilfeleiste über einem live scrollenden Log. Jede Aktion ist ein
einzelner Tastendruck, keine Menüs, keine Maus. Die Konsole läuft prozessintern neben dem Server, sodass
das, was Sie sehen, der Live-Zustand des Rechners ist, auf dem Sie sich befinden.

<Note>
  Die Konsole erscheint nur auf einem echten **interaktiven Terminal**, sowohl stdin als auch stdout müssen
  TTYs sein. Unter Docker, systemd oder wenn stdout weitergeleitet/umgeleitet wird, überspringt ipmideck die Konsole
  vollständig und schreibt nur einfache scrollende Logs. Siehe [Wo die Konsole erscheint](#wo-die-konsole-erscheint).
</Note>

## Wie es aussieht

Die Konsole ist eine einzige Vollbildansicht: ein angepinnter Header, den Sie immer sehen, über einem
live scrollenden Log, das darunter läuft.

<Frame caption="Die Konsole direkt nach dem Start: das Banner und die Hilfeleiste bleiben oben angepinnt, während der Log-Tail darunter scrollt.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/home.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=3f038250e1d7e5a038118c86ef7e2d5a" alt="ipmideck interactive console showing the banner, help bar, status line, and the scrolling log panel" width="1107" height="714" data-path="console/home.png" />
</Frame>

Der Header scrollt nie. Neue Log-Zeilen erscheinen im Panel darunter, und die neueste Zeile
wird immer auf dem Bildschirm gehalten. Sie drücken eine einzelne Taste, um zu handeln; alles geschieht prozessintern
gegen den Server, den Sie gerade gestartet haben.

## Der Header

Der obere Teil des Bildschirms ist ein fester Header, der nie scrollt. Er stapelt sich von oben nach unten:

* Das ipmideck-Banner.
* Die **Hilfeleiste**: jede Aktionstaste und was sie tut.
* Die **Statuszeile**: der Live-Zustand der Sitzung.
* Eine kompakte Credits-Zeile (Autor, Version, Lizenz).

Der Körper unter dem Header ist der scrollende Log-Tail. Die neueste Zeile wird immer auf dem
Bildschirm gehalten, sodass eine frisch erscheinende URL oder Bestätigung nie unten abgeschnitten wird.

### Statuszeile

Die Statuszeile zeigt drei Live-Felder, getrennt durch `|`:

* **Verbosity**: die aktuelle Log-Stufe (`INFO`, `DEBUG` oder `WARNING`).
* **Clients**: die Anzahl der gerade verbundenen Dashboard-Clients.
* **last**: die letzte Aktionstaste, die Sie gedrückt haben, als unmittelbares visuelles Feedback.

## Aktionstasten

Jede Aktion ist ein Tastendruck. Die Hilfeleiste listet sie alle auf:

| Taste | Aktion                                                               |
| ----- | -------------------------------------------------------------------- |
| `v`   | Log-**Ausführlichkeit** durchschalten                                |
| `c`   | Die Unteransicht der verbundenen **Sitzungen** öffnen                |
| `s`   | Die Unteransicht der konfigurierten **Server** öffnen                |
| `u`   | Die Dashboard-**URL** im Log einblenden                              |
| `g`   | **Update**-Prüfung (gibt die lokale Version aus)                     |
| `b`   | Den **Bind-ändern**-Editor öffnen                                    |
| `r`   | Den Server **neu starten**                                           |
| `q`   | **Beenden** oder aus einer Unteransicht zur Log-Ansicht zurückkehren |
| `ESC` | **Zurück**, aus einer Unteransicht zur Log-Ansicht zurückkehren      |

Pfeil-, Funktions- und Navigationstasten werden verbraucht und ignoriert, sie kollidieren nie mit einer
Aktion und zählen nicht als Tastendruck.

### v: Ausführlichkeit

`v` schaltet die Laufzeit-Log-Stufe durch eine feste dreistufige Schleife:

```
INFO → DEBUG → WARNING → INFO
```

`INFO` ist die Voreinstellung. `DEBUG` zeigt mehr; `WARNING` zeigt weniger. Die Änderung wirkt
sofort für den Rest der Sitzung und die Statuszeile aktualisiert sich entsprechend.

<Note>
  Der Ausführlichkeits-Umschalter ändert nur die **laufende** Stufe. Beim nächsten Start gewinnt die Stufe aus
  Ihrer Konfiguration (oder die Umgebungsvariable `IPMIDECK_LOGGING_LEVEL`) wieder. Siehe [Konfiguration](/de/configuration).
</Note>

### c: Sitzungen

`c` öffnet die Unteransicht **Connected sessions**, eine schreibgeschützte Tabelle der gerade
angehängten Dashboard-Clients, mit Spalten:

* **IP**
* **Connected since**
* **User-Agent**

Drücken Sie `q` oder `ESC`, um zur Log-Ansicht zurückzukehren.

<Frame caption="Die Unteransicht Connected sessions (Taste c), eine Zeile pro angehängtem Dashboard-Client.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/connections.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=ae63f8235c95bf3cde8110d80407eb27" alt="Connected sessions table showing IP, Connected since, and User-Agent columns" width="1100" height="427" data-path="console/connections.png" />
</Frame>

### s: Server

`s` öffnet die Unteransicht **Configured servers**, eine schreibgeschützte Tabelle der BMCs, mit denen ipmideck
zu sprechen konfiguriert ist, mit Spalten:

* **Name**
* **Host**
* **Status**

Drücken Sie `q` oder `ESC`, um zur Log-Ansicht zurückzukehren.

<Frame caption="Die Unteransicht Configured servers (Taste s), die jeden BMC und ob er online ist auflistet.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/servers.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=92eecf88dc0eab22e2cb10e44d9c8dc3" alt="Configured servers table showing Name, Host, and Status columns with online and offline servers" width="1107" height="366" data-path="console/servers.png" />
</Frame>

### u: URL

`u` blendet die Dashboard-URL (`scheme://host:port`) im Log-Körper ein. Wenn der Server an eine
Wildcard-Adresse gebunden ist (`0.0.0.0`, `::` oder leer), wird die URL in
`127.0.0.1` umgeschrieben, sodass sie tatsächlich in einem Browser geöffnet werden kann, `http://0.0.0.0:3000` ist eine Listen-
Adresse, keine navigierbare.

<Frame caption="Taste u gibt die Dashboard-URL unten im Log aus, in eine erreichbare Adresse umgeschrieben.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/url.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=dac700c68e0cdb9472732dcc4ba41373" alt="The console log with the dashboard URL printed at the bottom after pressing u" width="1103" height="713" data-path="console/url.png" />
</Frame>

### g: Update

`g` gibt die lokale Version aus und einen Hinweis, dass die Online-Update-Prüfung mit der pip-Version
ausgeliefert wird. Es macht **keinen Netzwerkaufruf**, ipmideck bleibt offline.

### r: Neustart

`r` führt einen sauberen prozessinternen Neustart aus: ipmideck baut die Konsole ab, liest
`config.yaml` neu ein und startet frisch. Verwenden Sie es nach einer [Bind-ändern](#b-bind-ändern)-Bearbeitung, um
die neue Adresse anzuwenden.

### q / ESC: Beenden und Zurück

* Aus einer Unteransicht (`sessions` oder `servers`) bringen `q` und `ESC` Sie beide zur Log-Ansicht zurück.
* Aus der Log-Ansicht löst `q` einen sauberen Exit aus, der Server fährt geordnet herunter.

## b: Bind ändern

`b` öffnet den Bind-ändern-Editor, eine Inline-`host:port`-Eingabe, die die Hilfeleiste ersetzt,
während Sie tippen. Der Header zeigt den aktuellen Bind als schreibgeschütztes `current: host:port`-Label
und ein leeres `new:`-Feld, sodass der Wert, den Sie tippen, sofort erscheint und nie mit dem bestehenden
verwechselt wird.

<Frame caption="Der Bind-ändern-Editor (Taste b): die Hilfeleiste wird durch den aktuellen Bind und eine leere neue host:port-Eingabe ersetzt.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/bind.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=6ef6d976c814450f3758213d3b0f1b76" alt="The change-bind editor showing the current bind address and an empty new field with apply, cancel, and delete key hints" width="1099" height="219" data-path="console/bind.png" />
</Frame>

Tasten innerhalb des Editors:

* **Enter**: das getippte `host:port` anwenden.
* **ESC**: abbrechen, ohne etwas zu ändern.
* **Backspace**: das letzte Zeichen löschen.
* Jedes druckbare Zeichen, an den Puffer anhängen.

Die Eingabe muss `host:port` sein, mit einem nicht-leeren Host und einem Port, der eine Ganzzahl im
Bereich **1–65535** ist. Bei einer gültigen Eingabe bestätigt ipmideck den neuen Bind und erinnert Sie, dass ein Neustart
erforderlich ist (drücken Sie `r`). Bei einer ungültigen Eingabe meldet es `Invalid host/port` und
nichts ändert sich.

<Warning>
  Eine Bind-ändern-Bearbeitung ist **nicht** live, sie wird in die Konfiguration geschrieben und wirkt erst nach einem
  Neustart. Drücken Sie `r`, um sie anzuwenden. Und denken Sie an die Priorität: eine `IPMIDECK_SERVER_HOST`- /
  `IPMIDECK_SERVER_PORT`-Umgebungsvariable oder ein explizites `--host`- / `--port`-Flag beim nächsten Start
  überschreibt, was die Konsole persistiert hat. Siehe [Konfiguration](/de/configuration).
</Warning>

## Wo die Konsole erscheint

Die interaktive Konsole ist an ein echtes TTY gebunden: ipmideck rendert sie nur, wenn **sowohl**
stdin als auch stdout interaktive Terminals sind. Wenn sie es nicht sind, degradiert es zu einem Banner plus
einfachen scrollenden Logs und installiert keinen Tasten-Listener, sodass nichts auf einem Non-TTY busy-spinnt.

Das bedeutet, die Konsole erscheint, wenn Sie ipmideck direkt in einem Terminal ausführen:

<CodeGroup>
  ```powershell PowerShell theme={null}
  ipmideck
  ```

  ```cmd cmd theme={null}
  ipmideck
  ```

  ```bash bash theme={null}
  ipmideck
  ```
</CodeGroup>

Sie erscheint **nicht**, wenn:

* Unter **Docker** läuft: der Container startet uvicorn direkt und erreicht nie den
  Konsolenpfad; Sie erhalten einfache Container-Logs (`docker logs`).
* Unter **systemd** oder einem anderen Service-Manager läuft, bei dem stdout kein Terminal ist.
* **Weiterleiten oder Umleiten** von stdout (z. B. `ipmideck > server.log`): stdout ist kein TTY mehr.

In jedem Non-TTY-Fall läuft der Server weiterhin normal und bindet an dieselbe Voreinstellung
`0.0.0.0:3000`; Sie erhalten nur einfache Logs statt der Live-Konsole.

<Note>
  `ipmilink` ist ein rückwärtskompatibler Alias für `ipmideck`, beide starten dieselbe Konsole.
</Note>

## Nächste Schritte

* [ipmideck ausführen](/de/running): Starten, serve und die Bind-Priorität-Regeln.
* [Das CLI](/de/cli): jeder Unterbefehl und jedes Flag im Detail.
* [Konfiguration](/de/configuration): Bind-Adresse, Ausführlichkeit und Abfrageintervalle setzen.
* [Installation](/de/installation): mit Docker oder pip installieren.
