A desktop app and command line for the management controllers in your servers.
Remote consoles, virtual media, power, event log, sensors, serial console and SSH,
all from one host list. The vendors' console protocols are spoken natively, in Rust:
no Java applet, browser plugin or vendor web page in the way.
Free and open source (AGPL-3.0) · Linux, macOS, Windows · v2.0.0
7BMC firmware families, detected automatically
0Java applets, browser plugins or ipmitool installs
1host list for consoles, power, media and terminals
What it does
One window for the whole rack.
Remote consoles in tabs
Video, keyboard and mouse for every supported family. Paste as keystrokes, Ctrl+Alt+Del behind a confirmation, a stats bar with resolution, frame rate, bitrate and round trip, screenshots and pop-out windows. A console someone else holds is asked for, not seized.
Virtual media
Mount a local ISO, or an image at an HTTP(S) URL, as a USB CD on the server. Rackius always connects to the BMC and serves the image itself, so it works behind NAT and over one-way routes.
Power and BMC reset
Through each family's own path, always behind a confirmation that names the machine.
Event log and sensors
Over Redfish where the BMC has it and IPMI where it does not. IPMI (RMCP+) is built in; no ipmitool needed.
Serial and SSH terminals
The server's serial console through its BMC (IPMI Serial over LAN, always encrypted), and SSH to its operating system, with host-key pinning, find, logging to a file and paste preview.
Host inventory
Groups with their own credentials and routes, tags, CSV import, discovery, live status and power, and console previews taken from the BMC's own screenshot, so looking costs no console session.
Routes
Reach BMCs through a SOCKS5 proxy or an SSH jump host, chained if need be, per host or per group. A broken route is an error, never a silent fallback to a direct connection.
Detection
Rackius identifies a BMC's family, generation and brand with unauthenticated probes, and picks the right protocol by itself.
A look around
Consoles and shells, side by side.
A console tab, with its toolbar and stats bar.
Screenshots are of the app on its built-in mock data; hosts and addresses are placeholders.
Supported BMCs
Seven firmware families, detected automatically.
The family is the firmware and decides the protocol; the brand on the box only decides the name and logo in the list. AMI's firmware in particular is sold under many names.
Family
Typical hardware
Console
Virtual media
Power & BMC reset
Serial (IPMI SOL)
ATEN
Supermicro X9, X10, X11, X12
Yes
Yes
Yes
Session verifiedoutput and typing not yet
AMI MegaRAC GoAhead
Quanta and other AMI boards
Yes
Yes
Yes
Session verifiedoutput and typing not yet
AMI MegaRAC SP-X
ASRock Rack, Lenovo TSM, ASUS, and more
Yes
Yes
Yes
Session verifiedoutput and typing not yet
HP iLO 4
ProLiant Gen8, Gen9
Yes
Yes
Yes
Session verifiedoutput and typing not yet
Dell iDRAC 9
PowerEdge 14G and later
Yesneeds the eHTML5 console plug-in
Yes
Yes
Not verified
Dell iDRAC 8
PowerEdge 13G
Yes
Yes
Yes
Not verified
Avocent MergePoint
Gigabyte, Dell PowerEdge C
Yes
Yes
Yes
Not verified
"Verified" means checked against a real BMC of that family. The protocol notes say exactly what was checked, on what, and what was not. In particular:
Through a route, no family has been verified yet: SOCKS5 and SSH routes are tested only against a fake proxy and an in-process SSH server.
SSH terminals are tested only offline so far.
mount-url (the BMC fetching an image from this machine) is implemented for iLO and iDRAC but was never exercised end to end. Use mount, the default.
iLO 4 has no screenshot endpoint, so its console preview is taken on request by opening the console for a moment; AMI and Dell PowerEdge C have none at all.
Command line
Runs where there is no desktop.
rackius with no arguments opens the app; everything else runs headless. A command that changes a BMC or takes one of its sessions holds that host while it runs, so the app and a script cannot trip over each other.
Routes are a SOCKS5 proxy or an SSH jump host, or a chain of them. A host takes the route of the nearest group that names one, unless it names its own. Jump-host keys are pinned on first use.
rackius --help
# consoles, power and media$ rackius power on compute-01
$ rackius mount ubuntu-24.04.iso compute-01
$ rackius preview compute-01 shot.ppm
# IPMI, built in$ rackius ipmi compute-01 sensors
$ rackius ipmi compute-01 sel
$ rackius ipmi compute-01 sol # ~. leaves# the server's own SSH$ rackius ssh compute-01 uptime
# routes, chained$ rackius route add jump-a ssh ops@203.0.113.10 --agent
$ rackius route add lab-socks socks5 198.51.100.7:1080 --via jump-a
$ rackius route group "Site A" jump-a
$ rackius route test jump-a 192.0.2.13
macOS 11 or newer, Apple Silicon and Intel. Open the .dmg and drag Rackius to Applications. The builds are not notarised, so clear the quarantine flag first:
Windows 10 or 11. SmartScreen will warn about an unsigned program: choose "More info", then "Run anyway". The installer adds the WebView2 runtime if it is missing. It does not edit PATH, so add its folder yourself for the command line.
Coming from bmc-kvm 1.x? Rackius is the same project under a new name. The Linux package and the Windows installer replace a bmc-kvm install; on macOS, delete bmc-kvm.app yourself. The first start copies your hosts, routes, settings and saved secrets from the old configuration directory, which is left in place.
Before you start
Read this first.
Every protocol here is reverse-engineered from the vendors' own clients, without their documentation or blessing. A mistake, or firmware that reacts badly to a client it did not expect, may crash a BMC, wedge it until it is reset, or even brick it. Use Rackius at your own risk, and try it on a machine you can afford to lose access to before one you cannot.
No guarantee of full capability with any IPMI or BMC. Support varies by vendor, firmware version and model, and a listed family may behave differently, or not work at all, on hardware or firmware that was not tested.
Saved passwords and route secrets are stored in plain text in the configuration directory (mode 0600). Treat it like an SSH key.