VirtoMir:以瀏覽器管理 KVM/libvirt 虛擬機器的業餘專案
I'm building a small web UI for KVM/libvirt as a hobby project
VirtoMir 是一個為 Linux 主機上的 KVM/QEMU 和 libvirt 提供的網頁介面,讓用戶透過瀏覽器管理虛擬機器。現有功能包括建立、啟動、停止、建立快照和複製虛擬機器,以及瀏覽器主控台、即時資源圖表和儲存設定前檢視 XML 差異。這是仍處於 0.x 階段的業餘專案,部分功能屬實驗性質,作者提醒用戶暫勿用於重要環境。
Hi everyone 👋
I want to share a hobby project I've been working on: VirtoMir, a web interface for managing virtual machines on a Linux host running KVM/QEMU with libvirt.
It's early, it's rough in places, and I'm mostly posting to get feedback from people who know this space better than I do.
Why I started it
I have a single KVM box at home. The existing options didn't quite fit how I wanted to use it:
- virsh is great, but I wanted something visual for day-to-day work.
- virt-manager is detailed, but it's a desktop app and awkward to use remotely.
- Proxmox is excellent, but it's a whole distribution. For one machine that felt like more than I needed.
- Cockpit is close, but I kept dropping to XML for the settings I cared about.
So I started building a browser UI that sits on top of an existing libvirt install. It doesn't replace anything: your VMs stay normal libvirt VMs, and anything you do in virsh shows up in the UI too. If you remove VirtoMir, your machines are untouched.
What it does today
The basics I use every day:
- Create a VM from an ISO or a cloud image (with cloud-init)
- Start, stop, snapshot, clone
- A console in the browser (VNC / SPICE / serial)
- Live CPU, disk and network graphs, updated every second
- An XML diff before any settings change is saved, so you see exactly what will change
There are more features in the repo (multi-host, backups and so on), but honestly many of them are only tested in my own lab, and some haven't been tried on real hardware at all. The README marks those as experimental.
How it's built
- Backend: Go, talking to libvirt. It ships as a single binary with the UI embedded, with no database or agents.
- Frontend: Svelte 5 + TypeScript.
- Live data: Server-Sent Events, one sample per second.
- Sign-in: your Linux account through PAM, behind self-signed TLS by default.
About AI
I want to be upfront: I'm building this with heavy AI assistance. I decide what to build, review the changes, and test them on my own KVM host, but a lot of the code was written together with an AI coding assistant.
I know there's a lot of fatigue around AI-generated projects, and I understand why. That's one more reason I'd really value people looking at it critically.
Try it (safely)
- Online demo with made-up data, nothing to install: https://onurbaydas.github.io/VirtoMir/demo/
- Try it in a throwaway VM without touching your own servers: https://github.com/onurbaydas/VirtoMir/blob/main/docs/try-in-a-vm.md
Please don't put it on anything important yet. It's a 0.x hobby project.
I'd love your feedback
I'm still learning, so any of these would help a lot:
- What feels confusing or missing compared to the tools you use now?
- Does it install and run on your distro? (I've mostly tested Ubuntu.)
- Anything that looks wrong or unsafe in the code?
Repo: https://github.com/onurbaydas/VirtoMir. Issues, discussions and comments here are all welcome.
Thanks for reading! 🙏
來源:DEV Community · dev.to
