virtu
Virtu
A dual-interface, high-performance virtualization management platform.
β‘ Overview
Virtu provides comprehensive management for libvirt-based infrastructure (KVM/QEMU) with absolute focus on concurrency and speed. It features a unified core driving two first-class interfaces:
- Virtu Web (WUI): A lightning-fast, reactive hypermedia web dashboard powered by Kemal, Blueprint, and Datastar.
- Virtu Desktop (GUI): A fully native, highly responsive desktop client built with GTK4 and Libadwaita.
β¨ Features
- Blazing Fast: Written purely in Crystal with non-blocking, fiber-based C-FFI
libvirtbindings. - Dual Interfaces with 100% Feature Parity: Manage your cluster from the browser (WUI) or natively on the desktop (GUI) with identical capabilities across VM operations, cloning, snapshots, storage, networks, secrets, and telemetry.
- Advanced Hardware Management:
virt-managerstyle hardware configurations, dynamic hot-plugging, and direct XML manipulation. - Zero-Friction State: A centralized background daemon seamlessly syncs VM state to clients without blocking OS threads.
- Secrets Vault & Network Filters: Full support for Ceph, LUKS, VNC secrets, and Libvirt NWFilter firewall rule chains.
π Getting Started
Prerequisites
On Fedora:
# Enable Crystal COPR repository and install dependencies
sudo dnf copr enable -y zawertun/crystal
sudo dnf install crystal shards libvirt-devel gtk4-devel libadwaita-devel
# Add user to libvirt, kvm, and qemu groups for non-root hypervisor access
sudo usermod -aG libvirt,kvm,qemu $USER
newgrp libvirt
Ensure Crystal >= 1.20.2 and development headers for libvirt, gtk4, and libadwaita are installed.
[!NOTE] Ensure system packages are installed before running
shards install. If package installation occurs afterwards, run./bin/gi-crystalormaketo generate missing GObject Introspection bindings.
Build & Run
# 1. Install dependencies
shards install
# 2. Build binaries (development or release)
make # Dev build (fast compilation)
make release # Production build (optimized)
# 3. Run interface
./bin/virtu-wui # Web UI
./bin/virtu-gui # Desktop GUI
Useful Commands
make check(ormake test) β Run the unit and controller spec test suitemake test-e2eβ Run the 5-tier end-to-end integration test suitemake test-browserβ Run browser-based integration specs via Selenium & Broadwaymake formatβ Format Crystal codebase (crystal tool format)make lintβ Run Ameba static analysis, ESLint, and Stylelintmake securityβ Run Flaw security scannermake docβ Build Sphinx HTML documentationmake devβ Run development server with auto-reload (sentry)
π Technical Documentation
Detailed architecture documentation, technical specs, Architecture Decision Records (ADRs), and the project roadmap can be found in the docs/ directory.
π€ Contributing
- Fork the project.
- Create your feature branch (
git checkout -b feature/my-feature). - Commit your changes (
git commit -am 'feat(scope): add some feature'). - Push to the branch (
git push origin feature/my-feature). - Open a Merge Request on GitLab.
virtu
- 1
- 0
- 0
- 0
- 12
- 7 days ago
- June 7, 2026
GNU General Public License v3.0 or later
Mon, 24 Aug 2026 12:58:10 GMT