Browser-accessible desktop pre-loaded to manage Supermicro, ATEN, Dell
iDRAC, and HP iLO BMCs that still ship Java Web Start KVM consoles and
MD5-signed jars. A maintained replacement for the abandoned
solarkennedy/ipmi-kvm-docker
(last commit 2022).
Old IPMI KVM applets don't run on modern Linux without a fight. What this image fixes:
| Problem | Fix |
|---|---|
Ubuntu 24/26 dropped openjdk-8-jre |
Eclipse Temurin 8 from Adoptium's apt repo |
icedtea-netx 1.8.8 throws NoSuchMethodError on JRE 8 |
pins 1.8.4 (apt-mark hold) |
| Modern Java rejects MD5/SHA1 jars | empties jdk.{tls,certpath,jar}.disabledAlgorithms |
KVM applets fail in <clinit> (SecurityManager) |
grants AllPermission in /etc/icedtea-web/javaws.policy |
| No browser desktop | built on linuxserver/webtop (KasmVNC + XFCE + Chromium) |
docker run --rm -p 3000:3000 --shm-size=1g ghcr.io/dillonbrowne/ipmi-bmc-toolkit:latestOpen http://localhost:3000, browse to your BMC in Chromium, click
Launch KVM, and double-click the downloaded .jnlp (or run
javaws <file>). The viewer opens on the desktop.
For persistence, mount /config so the Chromium profile, downloads, and
IPMIView survive a recreate:
docker run -d --name ipmi-bmc-toolkit -p 3000:3000 --shm-size=1g \
-v $(pwd)/data:/config ghcr.io/dillonbrowne/ipmi-bmc-toolkit:latestAlso on Docker Hub as dillonbrowne/ipmi-bmc-toolkit. A
docker-compose.example.yml is included.
Base linuxserver/webtop
(Ubuntu 26.04 · XFCE · KasmVNC · Chromium) + Eclipse Temurin 8 +
icedtea-netx 1.8.4 (javaws), plus BMC CLIs — ipmitool,
freeipmi-tools, openipmi, ipmiutil, conman — and net helpers
(ssh, sshpass, lftp, dig, tcpdump, …).
Supermicro's multi-BMC GUI. Its EULA forbids redistribution, so it's never bundled — it's fetched at runtime onto your own machine:
- Auto (opt-in): run with
-e IPMIVIEW_AUTODOWNLOAD=true(pin a build viaIPMIVIEW_URL). Enabling it means you accept the EULA. - Manual: Supermicro's browse/EULA pages are Akamai-gated, so download
IPMIView_*_bundleJRE_Linux_x64.tar.gzvia the in-desktop Chromium into~/Downloads, then runinstall-ipmiview.sh(or restart).
Installs to /config/IPMIView with a desktop launcher and ipmiview CLI.
Ships no built-in auth — fine for local use, not for network
exposure. Use CUSTOM_USER + PASSWORD (KasmVNC basic auth), a reverse
proxy with OIDC/SSO (recommended), or VPN-only.
| Var | Default | Notes |
|---|---|---|
PUID / PGID |
1000 |
from linuxserver/webtop |
TZ |
Etc/UTC |
timezone |
CUSTOM_USER / PASSWORD |
— | optional KasmVNC basic auth |
SUBFOLDER |
/ |
path prefix behind a reverse proxy |
IPMIVIEW_AUTODOWNLOAD |
false |
true fetches IPMIView at runtime (accepts EULA) |
IPMIVIEW_URL |
pinned 2.21.0 | override IPMIView version/URL |
Mount /config for persistent state; Chromium needs --shm-size=1g.
Full env list: webtop docs.
git clone https://github.com/dillonbrowne/ipmi-bmc-toolkit
cd ipmi-bmc-toolkit
docker buildx build --load -t ipmi-bmc-toolkit:dev .CI builds and publishes multi-arch (linux/amd64, linux/arm64) to GHCR
and Docker Hub.
MIT. Thanks to solarkennedy/ipmi-kvm-docker, linuxserver.io, Adoptium, and IcedTea-Web.