ipmideck, that starts the server, resets the
admin password, or generates a self-signed certificate.
The CLI only applies when you run ipmideck directly (pip install or a source checkout). The
Docker image launches
uvicorn backend.main:app directly and never invokes the CLI, so none
of these flags, the bind precedence, or the single-instance guard apply to the container. The container’s bind is set by its own startup command. See Installation.Starting the server
start is the primary serve command. A bare invocation with no subcommand serves identically,
so these are equivalent:
0.0.0.0:3000 by default, reachable on every interface,
on port 3000. Open http://<your-ip>:3000 once it is up.
Override the bind with --host and --port:
Subcommands
serve is a deprecated alias of start, prefer start (or a bare ipmideck) in new
scripts.Flags
These top-level flags apply to the serve path.--demo and --config are read before any
subcommand branch, so they also affect reset-password and --gen-cert.
Bind precedence
The host and port ipmideck actually binds are resolved in this order, highest priority first:- An explicit
--host/--portflag on the command line. - Configuration, which itself resolves env var (
IPMIDECK_SERVER_HOST/IPMIDECK_SERVER_PORT) overconfig.yamlover the built-in default. - The hardcoded fallback
0.0.0.0:3000, used if the early config load fails.
config.yaml is overridden by an IPMIDECK_
environment variable or a --host / --port flag on the next boot, env and CLI always win.
If config.yaml is malformed, ipmideck prints a warning to stderr and falls back to
0.0.0.0:3000.
The
IPMIDECK_SERVER_HOST and IPMIDECK_SERVER_PORT environment variables use the
IPMIDECK_ prefix. See Configuration for the full list of overrides.HTTPS with —gen-cert
--gen-cert generates a self-signed certificate and key, then exits. It does not start
the server and does not turn HTTPS on by itself:
data/certs/, records their paths into the server block of
config.yaml, and prints three lines:
server.https: true in config.yaml and restart ipmideck. HTTPS is never enabled automatically.
Demo mode
--demo runs ipmideck against simulated hardware instead of real BMCs, useful for evaluating
the dashboard without any servers wired up:
Resetting the admin password
reset-password interactively creates or updates the admin login, then exits without ever
starting the server:
Username: and then New password: (hidden input). If an account already
exists, it updates that user’s password and prints Password updated for <username>; otherwise
it creates the user and prints User <username> created.
Development auto-reload
--reload is a development-only fast path: it hands off to uvicorn’s own auto-reloading
supervisor and returns. It intentionally skips the single-instance port guard described
below, because the reloader runs its own supervisor process.
Exit codes
On the serve path (not
--reload), ipmideck runs a single-instance guard before binding. If the
port is already in use it prints an error to stderr and exits 1. If the bind fails because the
address is unavailable or not permitted, it prints a distinct error and also exits 1.
Next steps
- Configuration:
config.yamlkeys and theIPMIDECK_environment overrides. - Installation: install ipmideck with Docker or pip.
- Troubleshooting: connection, port, and IPMI errors.