Skip to content

cmu-sei/console-forge

Repository files navigation

This project is still in pre-release status and does not yet have an installable NPM package. Star the repository for notifications and updates!

Welcome to ConsoleForge!

ConsoleForge is an Angular 19+ library with a single purpose: to make serving hypervisor-hosted virtual machine console access easy and satisfying. It currently supports access to VNC and VMWare virtual machines.

Why not take it for a test-drive?

Since ConsoleForge is all about virtual consoles, you're going to need at least one to test drive it. If you don't have easy access to a Proxmox cluster or some other hypervisor host, you can check out this repo to grab yourself a Docker image that hosts a headless VNC server.

NOTE: If you have Python installed locally and are a VS Code user, you can use the included VS Code Task "Run X11VNC Desktop" to pull and start the container. Easy-peasy!

Requirements

The ConsoleForge library is built on Angular 19. Consult its package.json for specific dependencies.

We don't currently support independent installation of specific hypervisor support, so when you install ConsoleForge, it includes peer dependencies for all console clients (currently, VNC and VMWare WMKS).

ConsoleForge uses noVNC for VNC client support. See this fantastic package's documentation for currently-supported browsers.

VMWare WMKS and jQuery dependencies

If your use case for ConsoleForge doesn't require the ability to connect to VMWare-hosted consoles you can ignore everything about this section. Sweet!

If it does, things are a little become slightly complex.

jQuery

This SDK also has dependencies on jQuery and jQuery UI, which you'll also need to add to your Angular project. Depending on your use case, you can either do this through a CDN like code.jquery.com or via your favorite Node package manager. (Note that the HTML Console SDK's current documentation is not specific about which versions of jQuery/jQuery UI are required.) Assuming you're able to install and correctly configure the inclusion of these three dependencies, VMWare consoles in ConsoleForge should work as expected. Having trouble? Drop as an issue and let us know.

Including the HTML Console SDK's assets

We use a lightly modified version of the VMWare HTML Console SDK to deliver VMWare console support. For convenience, we include that SDK in the library. To include it in your Angular app's scripts, you'll need to update the "styles" and "scripts" sections of your angular.json file to include it. It'll look something like this:

//snip
"styles": ["dist/console-forge/vendor/vmware-wmks/css/main-ui.css"],
// snip
"scripts": ["node_modules/console-forge/vendor/vmware-wmks/js/wmks.min.js"]
// snip

We make the following adjustments due to our use case:

  • We include only the main-ui.css stylesheet in the library
  • We don't include images referenced by this CSS for reasons of distribution complexity

Maintainers

ConsoleForge is proudly maintained by the Software Engineering Institute at Carnegie Mellon University.

Assets

ConsoleForge's default toolbar (which can be replaced by end developers) uses SVG Icons by thewolfkit under the Attribution CC BY license.

Special thanks

Special thanks to these projects which make ConsoleForge possible!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published