Why Move KVM Management to the Web?
Seasoned sysadmins avoid installing a GUI on servers like the plague. Setting up a desktop environment just to run virt-manager eats at least 1GB of RAM and unnecessarily expands the system’s attack surface. And if you try using virt-manager over X11 forwarding, the latency is painfully obvious — sometimes a full second of lag just to register a mouse click.
I once ran a homelab cluster with Proxmox managing 12 VMs. Proxmox is powerful, but on small VPS instances with only 2GB of RAM, installing it leaves almost nothing for the actual workloads. That’s when the Kimchi and Wok combo became a lifesaver. It delivers a smooth HTML5 interface that lets you create VMs and access consoles right from your browser — no additional client software required.
The biggest win is the lightweight footprint. Kimchi brings you an experience close to Proxmox while keeping the pure, command-line nature of a Linux server fully intact.
What Are Wok and Kimchi?
Don’t confuse the two. They operate on a Host-Plugin model:
- Wok (Web Tool Kit): Acts as the framework. It handles authentication, security, and provides the base interface. Wok itself has no concept of virtual machines.
- Kimchi: A plugin that attaches to Wok. Its job is to communicate with
libvirtto control the underlying KVM virtual machines.
Think of it this way: Wok is the operating system, and Kimchi is the application running on top of it. Together, they turn your server into a mini virtualization management hub in just a few minutes.
Preparing Your System
I recommend using Ubuntu 20.04 or 22.04 LTS for the best stability. First, make sure virtualization is enabled in your CPU’s BIOS settings. You can check quickly with:
egrep -c '(vmx|svm)' /proc/cpuinfo
If the result is 1 or higher, you’re good to go. Don’t forget to update your system to avoid library conflicts:
sudo apt update && sudo apt upgrade -y
Step-by-Step Installation
Step 1: Install Dependencies
Kimchi requires quite a few Python libraries to operate. Instead of installing them one by one, bundle them all into a single command:
sudo apt install -y python3-pip python3-certifi python3-dev python3-lxml \
libvirt0 libvirt-daemon-system libvirt-clients virtinst qemu-kvm \
gettext software-properties-common nfs-common sosreport generic-logos \
python3-cherrypy3 python3-configobj python3-jsonschema python3-cryptography \
python3-paramiko python3-ldap python3-psutil python3-numpy python3-imaging
Step 2: Install Wok
We’ll download the .deb file directly from GitHub. This is the fastest way to get a stable build.
wget https://github.com/kimchi-project/wok/releases/download/3.0.0/wok-3.0.0-0.noarch.debian.deb
sudo apt install ./wok-3.0.0-0.noarch.debian.deb
Once installed, verify that the system’s heartbeat is running:
sudo systemctl status wokd
Step 3: Install Kimchi
Now it’s time to give Wok its soul. Kimchi will automatically detect the installation path and integrate into the system.
wget https://github.com/kimchi-project/kimchi/releases/download/3.0.0/kimchi-3.0.0-0.noarch.debian.deb
sudo apt install ./kimchi-3.0.0-0.noarch.debian.deb
sudo systemctl restart wokd
Accessing and Using Kimchi
By default, Wok runs on port 8001 over HTTPS. Navigate to:
https://your-server-ip:8001
Your browser will warn you about an SSL error since we’re using a self-signed certificate. Go ahead and click Advanced -> Proceed. Log in with your root account or any user with sudo privileges on the server.
Create a Virtual Machine in 30 Seconds
The Kimchi interface is very intuitive. To spin up a VM immediately, follow these steps:
- Go to Virtualization -> Templates.
- Click Add Template. You can paste a direct ISO download link (such as an Ubuntu Server ISO URL) and Kimchi will download it automatically.
- Once your Template is ready, switch to the Guests tab, click the + button, and select the template you just created.
One feature I particularly love is Storage Pool management. Instead of typing out lengthy virsh pool-define-as commands, a few clicks is all it takes to partition a disk or mount a new volume.
Hard-Learned Tips to Avoid Common Pitfalls
After using Kimchi for a while, here are a few lessons that will save you from frustrating little issues:
- Console issues: Kimchi uses noVNC. If you’re on Safari and can’t see the VM screen, switch to Chrome or Firefox.
- Access denied: If you’re entering the correct password but still getting rejected, check whether your user belongs to the
libvirtgroup:sudo usermod -aG libvirt $USER. - Firewall: A lot of people forget to open the port and end up with a browser that just spins forever. Run this immediately:
sudo ufw allow 8001/tcp.
So, Should You Use Kimchi?
If you need heavy-duty features like centralized backups, clustering, or high availability, go with Proxmox. But if you have a single standalone server and just want to manage a handful of VMs for a lightweight lab environment, Kimchi is the top choice right now.
It completely removes the command-line barrier for newcomers. At the same time, it keeps your server clean — free from the bloat of desktop environment packages. Give it a try and experience just how convenient this duo can be.

