The console only appears on a real interactive terminal — both stdin and stdout must be
TTYs. Under Docker, systemd, or when stdout is piped/redirected, ipmideck skips the console
entirely and just writes plain scrolling logs. See Where the console shows up.
The header
The top of the screen is a fixed header that never scrolls. It stacks, top to bottom:- The ipmideck banner.
- The help bar — every action key and what it does.
- The status line — the live state of the session.
- A compact credits line (author, version, license).
Status line
The status line shows three live fields, separated by|:
- Verbosity — the current log level (
INFO,DEBUG, orWARNING). - Clients — the number of connected dashboard clients right now.
- last — the last actionable key you pressed, as immediate visual feedback.
Action keys
Every action is one keypress. The help bar lists them all:| Key | Action |
|---|---|
v | Cycle log verbosity |
c | Open the connected-sessions sub-view |
s | Open the configured-servers sub-view |
u | Surface the dashboard url in the log |
g | Update check (prints the local version) |
b | Open the change-bind editor |
r | Restart the server |
q | Quit, or return to the log view from a sub-view |
ESC | Back — return to the log view from a sub-view |
v — verbosity
v cycles the runtime log level through a fixed three-step loop:
INFO is the default. DEBUG shows more; WARNING shows less. The change takes effect
immediately for the rest of the session and the status line updates to match.
The verbosity toggle changes the running level only. On the next boot, the level from
your config (or the
IPMIDECK_LOGGING_LEVEL env var) wins again. See Configuration.c — sessions
c opens the Connected sessions sub-view, a read-only table of the dashboard clients
currently attached, with columns:
- IP
- Connected since
- User-Agent
q or ESC to return to the log view.
s — servers
s opens the Configured servers sub-view, a read-only table of the BMCs ipmideck is
configured to talk to, with columns:
- Name
- Host
- Status
q or ESC to return to the log view.
u — url
u surfaces the dashboard URL (scheme://host:port) in the log body. If the server is
bound to a wildcard address (0.0.0.0, ::, or empty), the URL is rewritten to
127.0.0.1 so it is actually openable in a browser — http://0.0.0.0:3000 is a listen
address, not a navigable one.
g — update
g prints the local version and a note that the online update check ships with the pip
release. It makes no network call — ipmideck stays offline.
r — restart
r performs a clean in-process restart: ipmideck tears down the console, re-reads
config.yaml, and starts fresh. Use it after a change-bind edit to apply
the new address.
q / ESC — quit and back
- From a sub-view (
sessionsorservers),qandESCboth return you to the log view. - From the log view,
qtriggers a clean exit — the server shuts down gracefully.
b — change-bind
b opens the change-bind editor, an inline host:port prompt that replaces the help bar
while you type. The header shows the current bind as a read-only current: host:port label
and an empty new: field, so the value you type appears immediately and is never confused
with the existing one.
Keys inside the editor:
- Enter — apply the typed
host:port. - ESC — cancel without changing anything.
- Backspace — delete the last character.
- Any printable character — append to the buffer.
host:port with a non-empty host and a port that is an integer in the
range 1–65535. On a valid entry, ipmideck confirms Bind set to host:port — restart required to apply (press r). On an invalid entry, it reports Invalid host/port and
nothing changes.
Where the console shows up
The interactive console is gated on a real TTY: ipmideck renders it only when both stdin and stdout are interactive terminals. When they are not, it degrades to a banner plus plain scrolling logs and installs no key listener — so nothing busy-spins on a non-TTY. This means the console appears when you run ipmideck directly in a terminal:- Running under Docker — the container launches uvicorn directly and never reaches the
console path; you get plain container logs (
docker logs). - Running under systemd or any service manager where stdout is not a terminal.
- Piping or redirecting stdout (e.g.
ipmideck > server.log) — stdout is no longer a TTY.
0.0.0.0:3000; you just get plain logs instead of the live console.
ipmilink is a backward-compatible alias for ipmideck — both launch the same console.Next steps
- Running ipmideck — start, serve, and the bind-precedence rules.
- The CLI — every subcommand and flag in detail.
- Configuration — set the bind address, verbosity, and polling intervals.
- Installation — install with Docker or pip.