Skip to content

Repository files navigation

IPKVM Console

An isolated desktop client for browser-managed IP KVM appliances and embedded server-management controllers. It supports modern HTML5 viewers as well as legacy consoles that deliver Java Web Start (.jnlp) sessions:

  • dedicated persistent browser profile;
  • no browser extensions;
  • direct network connection with system/PAC proxies bypassed;
  • popup support for JavaScript-created viewer and session windows;
  • shared cookies between the management page and HTML5 viewer popups;
  • Node.js integration disabled for all remote content.

Saved IPKVM management URLs can be added, edited, removed, and selected from the native Sites menu. Optional per-site credentials can be protected with Windows encryption and autofilled without automatically submitting the form.

Requirements

  • Windows 11 or a modern x86-64 Linux distribution
  • Node.js and npm (only needed to run from source or build the application)
  • VPN or LAN connectivity to each configured IPKVM management URL
  • Each KVM certificate or its issuing CA installed in Windows' Trusted Root Certification Authorities store

Run from source

cd path\to\ipkvm-console
npm install
npm start

Log in through the appliance management page and launch its KVM session normally. HTML5 viewer popups open as maximized Electron windows using the same isolated login session. Although Chromium's popup blocker is disabled, HTTP and HTTPS popup windows remain inside Electron and never get handed to the system's default browser. Remote content remains sandboxed with Node.js integration disabled.

Configuration

No source configuration file is required. On first launch, the site manager opens so that the user can add an IPKVM management URL. Sites are stored in Electron's per-user application-data folder as sites.json. Use Sites > Add or Manage Sites... to make changes.

The application uses a direct network connection with the Windows system/PAC proxy bypassed. This matches the clean Chrome configuration required by some older IPKVM appliances.

Java Web Start support requires IcedTea-Web or OpenWebStart to be installed. The app detects common javaws.exe (Windows) and javaws (Linux) locations, or the executable can be chosen under KVM > Java Web Start Settings....

Compatibility

IPKVM Console is designed for vendor-neutral web management interfaces, including:

  • IP KVM appliances with HTML5 viewers that open in a new browser window;
  • appliances and server-management controllers that download JNLP sessions;
  • older interfaces that require an isolated browser profile, persistent cookies, popup support, or direct proxy bypass;
  • multiple consoles from different vendors stored in one application.

Avocent MergePoint Unity is a known working example. Older Dell iDRAC and other JNLP-based systems can use the Java Web Start integration, subject to the Java version, security policy, and TLS requirements of their firmware. Interfaces that require ActiveX, NPAPI browser plug-ins, or a proprietary native client are not directly embedded by this application.

Build a Windows installer

npm run make:win

Electron Forge creates a Squirrel installer under:

out\make\squirrel.windows\x64\IPKVM-Console-Setup.exe

The installer adds the application to the current Windows user profile and creates the standard Squirrel application shortcuts. It does not require an administrator installation.

The GitHub Actions workflow in .github/workflows/windows-build.yml runs the checks and tests, builds the installer, and uploads the setup executable and Squirrel update files on pushes to main, pull requests, or manual runs.

To create only an unpacked application directory:

npm run package:win

That output is written below out\IPKVM Console-win32-x64.

Build Linux packages

Linux packages must be built on a Linux host or in a Linux container. From a Linux checkout, run:

npm ci
npm run check
npm test
npm run build:linux

The Linux build produces x86-64 AppImage, Debian, and RPM packages in dist/:

IPKVM-Console-<version>-<architecture>.AppImage
IPKVM-Console-<version>-<architecture>.deb
IPKVM-Console-<version>-<architecture>.rpm

The AppImage is portable and does not require installation:

chmod +x IPKVM-Console-*.AppImage
./IPKVM-Console-*.AppImage

Install the distribution-specific packages with either:

sudo apt install ./IPKVM-Console-*.deb
sudo dnf install ./IPKVM-Console-*.rpm

The GitHub Actions workflow in .github/workflows/linux-build.yml builds and uploads all three formats on pushes to main, pull requests, or manual runs.

Create a GitHub Release

The release workflow builds all Windows and Linux packages, generates release notes, creates a GitHub Release, and attaches the installer, AppImage, DEB, RPM, and Squirrel update files. It runs when a version tag is pushed.

The tag must exactly match the version in package.json. For example, when package.json contains version 1.3.0:

git tag -a v1.3.0 -m "IPKVM Console v1.3.0"
git push origin v1.3.0

Push the workflow changes to main before creating the tag. The workflow uses GitHub's repository-scoped GITHUB_TOKEN; no personal access token or custom secret is required.

Application icon

Add the chosen Windows icon as:

images\ipkvm.ico

Forge automatically applies it to both the executable and installer. See images\README.md for the PNG, macOS, and optional SVG filenames and the recommended ICO sizes. Re-run npm run make:win after replacing the icon.

Application controls

The application menu remains visible on management windows. Useful commands include:

  • KVM > Open Current Site (Ctrl+Home)
  • KVM > Manage Sites (Ctrl+Shift+S)
  • KVM > Java Web Start Settings
  • KVM > Clear Isolated Session Data
  • View > Toggle Developer Tools (Ctrl+Shift+I)
  • View > Toggle Full Screen (F11)

The isolated profile persists between launches. Clearing it only affects this application; it does not alter Chrome or Edge data.

Security notes

The application does not bypass TLS validation. Each appliance certificate or its issuing CA must be trusted by Windows and valid for the configured hostname. Remote pages run with Node.js integration disabled, context isolation enabled, and the Electron renderer sandbox enabled. IPKVM Console supports HTML5 viewers and can hand downloaded .jnlp sessions to an installed IcedTea-Web or OpenWebStart javaws.exe launcher. Configure the launcher under KVM > Java Web Start Settings.

Saved per-site credentials are encrypted with Electron safeStorage—Windows DPAPI on Windows and the available system credential store on Linux—and autofilled into recognized login forms. If secure storage is unavailable, the app disables password saving. Autofill never submits the form automatically. A blank password while editing keeps the saved password; use Remove the currently saved password to clear it.

Publisher

IPKVM Console is published by Nixdevil Productions.

Copyright © Nixdevil Productions.

About

Desktop client for HTML5 and Java Web Start IP KVM consoles.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages