ipmideck

Setup

Get ipmideck running on your rack

Three steps from a fresh box to a live dashboard. Pick Docker or pip, start it, then open the wizard. No config files to hand-edit.

Where to get it

Published to PyPI and Docker Hub, with the full source on GitHub. Pick whichever fits how you run things.

Step 1

Install and start

Two ways to run ipmideck. Docker is a single command. With pip you install the package, then start the server.

docker

Run the container

docker
docker run --network host devluigi06/ipmideck:latest

Runs with --network host so ipmideck can reach your BMCs directly.

pip
  1. Install the package

    pip
    pip install ipmideck
  2. Start the server

    cli
    ipmideck

The pip package needs ipmitool installed on the host. A bare ipmideck binds 0.0.0.0:3000.

Step 2

Open the dashboard

http://<your-ip>:3000

your-ip is the address of the machine you ran it on. Find it with ip addr on Linux, or in your router's device list.

Browse to your server's address on port 3000, then follow the in-app setup wizard to add your first BMC. config.yaml is written automatically on first run, so there is nothing to configure by hand.

Working? You'll land on the ipmideck login, then a short setup wizard to add your first BMC.

Not seeing it?

Nothing loads? Either free up port 3000, or move ipmideck to another port: press the b key in the interactive console, or set IPMIDECK_SERVER_PORT.

BMC missing in the wizard? It must be reachable on UDP 623. In Docker, run with --network host.

Supported hardware

ipmideck speaks standard IPMI 2.0, so most server BMCs respond. Support is tiered by how thoroughly each vendor has been tested.

Dell PowerEdge / iDRACSupported / tested
IPMI 2.0. Fully supported and tested.
SupermicroExperimental
IPMI 2.0. Works, not yet exhaustively tested.
HPE
HPE iLOExperimental
IPMI 2.0. Experimental, not yet exhaustively tested.
Lenovo XCCExperimental
IPMI 2.0. Experimental, not yet exhaustively tested.
IBM
IBM IMMExperimental
IPMI 2.0. Experimental, not yet exhaustively tested.

Configuration

advanced

You do not need this to get started. ipmideck writes data/config.yaml with sensible defaults on first run. It is here for when you want to know where it lives and how to change it.

where config.yaml lives
Docker
/data/config.yaml. The image sets IPMIDECK_DATA_DIR=/data, so persist that path with a volume.
pip / source
A data directory next to the install (on Linux, /data). Relocate it with IPMIDECK_DATA_DIR.
Show the default config.yaml
config.yaml
# data/config.yaml — auto-generated on first run
server:
  host: "0.0.0.0"
  port: 3000
  https: false
auth:
  enabled: true
  session_expiry: "24h"
  max_login_attempts: 5
ipmi:
  poll_interval: 30
  power_poll_interval: 30
  command_timeout: 30
data:
  retention_days: 365
  cleanup_interval: "24h"
logging:
  level: "info"
modules:
  sensors:
    enabled: true
  fanpilot:
    enabled: true
  power:
    enabled: true
  sel:
    enabled: true
  fru:
    enabled: true

Every setting can be overridden at runtime with an IPMIDECK_-prefixed environment variable, the easy way to configure ipmideck in Docker.

IPMIDECK_SERVER_PORT
HTTP port the dashboard binds to (default 3000).
IPMIDECK_AUTH_ENABLED
Enable or disable the built-in login (default true).
IPMIDECK_IPMI_POLL_INTERVAL
Seconds between BMC sensor polls (default 30).
IPMIDECK_DATA_RETENTION_DAYS
Days of sensor history to keep before cleanup (default 365).