Docker (recommended)
Linux.--network host is required so the container can reach your BMCs directly on
your local network over UDP port 623 (the IPMI/RMCP+ port). Without host networking, the
container sits behind Docker’s NAT and cannot complete an IPMI session with your hardware.
ipmideck-data) on /data. That volume holds your
config.yaml, the SQLite database, and the encryption key that protects your stored BMC
credentials, so they survive a restart, an upgrade, or a docker rm. Without -v you get
a fresh, empty install every time the container is recreated.
Once the container is up, open http://<your-ip>:3000 and follow the setup wizard.
The published image lives on Docker Hub at
hub.docker.com/r/devluigi06/ipmideck.
pip
ipmitool to be installed on the host, ipmideck shells out to
ipmitool for every IPMI operation. Install it from your distribution’s package manager
first (for example apt install ipmitool or dnf install ipmitool).
Installing on Debian and Ubuntu (PEP 668)
On a stock Debian 12+ or Ubuntu 23.04+ system,pip install ipmideck stops with:
apt depends on it, and blocks pip from writing into it. There are two
supported ways to install ipmideck anyway.
pipx (recommended)
pipx installs a command-line Python application into its own isolated virtual environment and exposes the resulting command globally, without ever touching the system Python. That is exactly the shape of ipmideck, so this is the path we recommend:~/.local/bin. Debian and Ubuntu add that directory to your
PATH automatically once it exists, but only for new shell sessions, so the very first
install prints a warning and ipmideck is not yet found in the shell you ran it from:
venv
A virtual environment sidesteps PEP 668 the same way, and is the right choice if you are working from a source checkout:ipmideck command is available whenever that environment is activated.
pip install --break-system-packages ipmideck also works, but it writes straight into
the system Python and can break apt if a dependency version collides. Prefer pipx or a
venv.Where ipmideck stores data
ipmideck writes its configuration and database under a data directory:- Docker:
/datainside the container (the image setsIPMIDECK_DATA_DIR=/data; persist it with a volume). - pip on Linux:
/databy default, which a non-root user normally cannot write to. - pip on Windows:
./data, relative to the directory you runipmideckfrom.
IPMIDECK_DATA_DIR environment
variable. This directory holds config.yaml, the SQLite database, and the encryption key
file used to protect your stored BMC credentials. See Configuration and
Running ipmideck for details.
Running as a service (Linux)
ipmideck start in a terminal opens the interactive console and stops when
you close the session. To keep ipmideck running in the background and start it on boot, run
it under systemd instead.
Create a dedicated user, install ipmideck for it with pipx, and give it a data directory it
owns:
journalctl -u ipmideck -f), exactly like the Docker
container. systemctl stop sends SIGTERM, which triggers the same graceful shutdown that
hands fan control back to your BMCs. See
Headless / non-TTY mode.
Next steps
- First-run setup: the setup wizard, login mode, and your first BMC.
- Configuration: tune ports, polling intervals, and retention.
- Supported Hardware: confirm your BMC is covered.
- Troubleshooting: connection and IPMI errors.