🚀 [Release] GLKVM-Cloud: A Lightweight Self-Hosted KVM Remote Cloud Platform

We’re excited to introduce GLKVM-Cloud, an open-source project designed for individuals and small businesses who want a fast, secure, and private way to access their KVM devices remotely.

Key Features

  • Device Management – Monitor online KVM devices in real time

  • Script Deployment – Add devices conveniently via scripts

  • Remote SSH – Web-based SSH connections from your browser

  • Remote Control – Remote desktop control over the web

  • Batch Operations – Execute commands on multiple devices at once

  • Rapid Deployment – One-line installation, no complex setup

  • Data Security – Fully self-hosted, you own your data

  • Dedicated Bandwidth – Self-deployment means no shared bandwidth, performance is under your control

  • Lightweight Design – Optimized for small businesses and individual users

Supported Platforms

  • Debian Family: Ubuntu 18.04 / 20.04 / 22.04 / 24.04, Debian 11 / 12

  • Red Hat Family: AlmaLinux 8 / 9, Rocky Linux 8 / 9, CentOS Stream 9

System Requirements

  • CPU: 1 core or above

  • Memory: ≥ 1 GB

  • Storage: ≥ 40 GB

  • Bandwidth: ≥ 3 Mbps

  • KVM Device Firmware: ≥ v1.5.0

Supported KVM Devices

  • GL-RM1 Comet

  • GL-RM1PE Comet PoE

  • GL-RM10 Comet Pro

  • Future models from the GLKVM series will also be supported

:high_voltage: Quick Start

Install with a single command:

( command -v curl >/dev/null 2>&1 && curl -fsSL https://kvm-cloud.gl-inet.com/selfhost/install.sh || wget -qO- https://kvm-cloud.gl-inet.com/selfhost/install.sh ) | sudo bash

Learn More

GitHub repo: https://github.com/gl-inet/glkvm-cloud

5 Likes

This just made these devices a little more interesting to me - thanks for the work here!

Nice! Any thoughts about supporting an official docker image for it?

2 Likes

As long as your devices are above firmware version of 1.5. This function can be use and you can please refer to the link for guidance.

We currently provide an installation script that deploys everything via Docker in a one-step process, with CDN support for faster downloads. At this stage, we haven’t published an official image to Docker Hub, since the existing method is already quite straightforward. That said, if there’s strong demand for an official Docker Hub image, we’re happy to add it to our roadmap.

It makes things easier to add it to my current Docker Compose setup, but I tend to use SOCKS over SSH rather than needing a web interface. That said, I may need to play with it for software update management.

Maintaining an official Docker image is indeed a good idea, and we will consider doing so to better meet different customer needs. That said, I think there may be a slight misunderstanding: the main focus of GLKVM Cloud is not just providing remote access to the GLKVM device itself, but enabling remote control and display of the host connected to the KVM device. For this reason, the solution relies heavily on a web interface.

That’s what I figured (although I haven’t had time to play myself), popping that into my NGINX setup would let me easily enable some of my security frameworks like MTLS to make it accessible from the outside world. That said, my setup is pretty trivial.

Commenting to show support for official docker images, this would align with my self-hosted setup!

We are currently collecting user feedback and plan to release an official Docker image in the near future. Stay tuned.

3 Likes

We’ve now published an official Docker image on Docker Hub to support manual installation. You’re welcome to try it out, and we’d greatly appreciate any feedback to help us improve. For detailed usage instructions, please refer to the documentation here: docker-compose/README.md.

5 Likes

Update:
GLKVM Cloud self-hosted deployment now supports the arm64 (AArch64) platform.

This allows deployment on ARM-based systems and devices, such as OpenWrt-based routers and Raspberry Pi, in addition to existing x86_64 platforms.

For details, please refer to the v1.5.0 release notes:
https://github.com/gl-inet/glkvm-cloud/releases/tag/v1.5.0

The link to Remote Control doesn’t work if using domain name instead of IP (Remote SSH is correct). It replaces the subdomain name with the Device ID:
DeviceID.mydomain.com:10443/?sid=………………``.

If I replace it with the real domain name, it works:
test.mydomain.com:10443/?sid=………………``.

Also, please show the installed version in the GUI.

@kjb This behavior is expected by design.

When accessing GLKVM Cloud via a domain name, the system uses device-specific subdomains to allow simultaneous access to multiple devices without conflicts. Each device is accessed through its own subdomain (for example, DEVICE_ID.yourdomain.com).

Please make sure your DNS records are configured accordingly. You can refer to the following documentation for detailed DNS configuration instructions:
https://github.com/gl-inet/glkvm-cloud?tab=readme-ov-file#-add-dns-records

Regarding the version information, we plan to add the installed version display to the GUI in an upcoming release to make it easier to identify the currently running version.

I should have read the instructions :wink:

I’m not sure if I like this behavior. For a large scale rollout with a dedicated domainname and multiple different users, this probably makes sense. If I want to use my existing domain for just a few devices, I want to use a subdomain and don’t want to have all typos end up at the KVM login screen. This behavior seems unnecesarily unsafe to me. But thanks anyway for the effort and making it possible at all.

1 Like

@kjb Thanks for the feedback.

Our domain redirect logic supports multi-level subdomains and does not require using www.example.com. For example:

  • www.example.comdevid.example.com
  • www.l1.example.comdevid.l1.example.com
  • www.l1.l2.example.comdevid.l1.l2.example.com

This allows you to use a dedicated subdomain hierarchy if needed.

We’ve also released a new version that shows the GLKVM Cloud version in the GUI:
https://github.com/gl-inet/glkvm-cloud/releases/tag/v1.6.0

Didn’t they say this was targeted at individuals and small business? I am not sure “large scale rollout” was in the use case for this product.

Correct, I can use a subdomain. My concern is the need to use *.example.com. I want unknown subdomains to go to a dedicated ‘unknown’ page and not the KVM cloud plattform.

Thank you for showing the version now.

Thanks for the suggestion. We’ll consider this for a future release.

1 Like

Does this work with the Android app?
If so, how does one point the app to the domain/URL to connect to the hosted devices?