virtu

Virtualization management platform with a GUI and a WUI.

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, server-side rendered web dashboard powered by Kemal and HTMX.
  • Virtu Desktop (GUI): A fully native, highly responsive desktop client built with GTK4.

✨ Features

  • Blazing Fast: Written purely in Crystal with non-blocking, fiber-based C-FFI libvirt bindings.
  • Dual Interfaces: Manage your cluster from the browser or natively on the desktop.
  • Advanced Hardware Management: virt-manager style 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.

🚀 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-crystal or make to 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 test — Run the spec test suite
  • make dev — Run development server with auto-reload
  • make lint — Run Ameba, ESLint, and Stylelint
  • make security — Run Flaw security analyzer

📚 Technical Documentation

Detailed architecture documentation, technical specs, and the project roadmap can be found in the docs/technical/ directory.

🤝 Contributing

  1. Fork the project.
  2. Create your feature branch (git checkout -b feature/my-feature).
  3. Commit your changes (git commit -am 'feat(scope): add some feature').
  4. Push to the branch (git push origin feature/my-feature).
  5. Open a Merge Request on GitLab.

Co-developed by Rénich Bon Ćirić & Gemini AI
Repository

virtu

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 12
  • 7 days ago
  • June 7, 2026
License

GNU General Public License v3.0 or later

Links
Synced at

Tue, 04 Aug 2026 05:46:45 GMT

Languages