Skip to content

Installation

Prerequisites

VirtUI Manager is a Python-based application that leverages libvirt for virtualization management and textual for its terminal user interface.

System Requirements

  • Operating System: Linux (tested on openSUSE, Fedora, Ubuntu, Arch)
  • Python: 3.7+
  • Virtualization: KVM/QEMU and Libvirt installed and running.
  • Essential Tools:
    • libvirt (daemon and client tools like virsh)
    • qemu-img (from qemu or qemu-utils, for disk management)
    • tmux (required for terminal console management)
    • 7zip / p7zip (required for some ISO and archive operations)
    • spice-gtk and gtk-vnc (required for remote viewer support)
    • vte (required for the virtui-gui wrapper)
  • Access: Your user must have permissions to manage libvirt (usually part of the libvirt group). You can add your user to the group with: sudo usermod -aG libvirt $USER (a logout/login is required).

Python Dependencies

VirtUI Manager requires the following Python libraries:

  • libvirt-python: Libvirt Python bindings
  • textual: Terminal User Interface framework
  • PyYAML: YAML configuration parsing
  • markdown-it-py: Markdown rendering for documentation
  • packaging: Version parsing and management
  • requests: HTTP library for ISO and template downloads
  • netifaces: Network interface discovery
  • websockify: (Optional) Required for web console support

This is the simple way to get the virtui-manager working easily. Even if this application do not requires lot of dependencies, on old ditribution this could be complex to get everything available. Moreover this application has been developed on top of a rolling release openSUSE Slowroll, so with up to dates packages. Flatpak container is also providing up to date packages.

Why not on flathub website? Flathub doesn't accept anymore console application. Even this one is providing a Terminal GTK wrapper this app is not really a candidate for Flathub.

Github.com has been setup to build a flatpak app, so everything is built on github, a platform you can trust.

TO install, download the flaptpak file, and install it on your system, for Version 2.4.8:

wget https://github.com/aginies/virtui-manager/releases/download/2.4.8/virtui-manager.flatpak
flatpak install virtui-manager.flatpak

To run it, use flatpak run or search for the VirtUI Manager app.

flatpak run io.github.aginies.virtui-manager

Flatpak local rebuild and install

Go to flathub directory and just do:

make build && make install

This will install the application on your system.

OpenSUSE / SLE Installation

VirtUI Manager is available as a package in the Virtualization repository. Choose the right repository, go to it and download packages and install them. It is also available on openSUSE:Factory.

Note

Packages have been tested on Slowroll and Tumbleweed product only. In case of issue use Flatpak container.

  • Repository:
  • 15.6 repo
  • 15.7 repo
  • 16 repo
  • Slowroll
  • Tumbleweed
  • Search for virtui
  • Download the rpm packages: virtui-manager, virtui-manager-doc, virtui-remote-viewer, virtui-manager-lang
  • install the packages with zypper.
sudo zypper in virtui-*.rpm

Note

You can also add the repository but these means all the packages from this repository will be used later on update of the system, if you dont want that you need to remove it after the installation of the packages.

Generic / Virtual Environment (Pip)

If your distribution doesn't package these libraries or you prefer a virtual environment:

pip3 install virtui-manager

Now virtui-manager, virtui-manager-cmd, virtui-remote-cmd, virtui-gui will be available from Command line.

Nix Package (experimental)

This project includes comprehensive Nix package definitions for easy installation and development. The Nix files are located in the nix/ directory.

Prerequisites

Ensure you have Nix installed with flakes enabled. Add the following to your Nix configuration (~/.config/nix/nix.conf or /etc/nix/nix.conf):

experimental-features = nix-command flakes

Quick Install (Flake)

Run VirtUI Manager directly without installing:

nix run github:aginies/virtui-manager

Or install it to your profile:

nix profile install github:aginies/virtui-manager

Building Locally

Clone the repository and build:

git clone https://github.com/aginies/virtui-manager.git
cd virtui-manager/nix

# Build the package
nix build

# Run directly
nix run

Traditional Nix (without flakes)

If you prefer not to use flakes:

cd virtui-manager/nix

# Build
nix-build default.nix

# Run the result
./result/bin/virtui-manager

Development Shell

Enter a fully configured development environment with all dependencies, testing tools (pytest, pytest-cov, pytest-asyncio), and code quality tools (black, ruff, mypy):

Using flakes:

cd virtui-manager/nix
nix develop

Without flakes:

cd virtui-manager/nix
nix-shell shell.nix

Once in the development shell, you'll have access to:

Command Description
pytest tests/ Run tests
black src/ Format code
ruff check src/ Lint code
mypy src/ Type check
python -m pip install -e . Install in editable mode

NixOS Configuration

To add VirtUI Manager to your NixOS configuration:

# In your flake.nix inputs
inputs.virtui-manager.url = "github:aginies/virtui-manager";

# In your configuration
environment.systemPackages = [
  inputs.virtui-manager.packages.${pkgs.system}.default
];

Home Manager

For Home Manager users:

# In your home.nix or flake
home.packages = [
  inputs.virtui-manager.packages.${pkgs.system}.default
];

Package Details

The Nix package includes:

  • Dependencies: libvirt-python, textual, pyyaml, markdown-it-py
  • Optional: websockify (for webconsole support)
  • Platforms: Linux only
  • License: GPL-3.0+

Installation Steps from Source Code

Devel version: Clone the Repository

This is possible to test latest version from github

Get the latest source code from GitHub:

git clone https://github.com/aginies/virtui-manager.git
cd virtui-manager

Launch the devel version

cd src/vmanager
python3 virtui_dev.py

openSUSE / SLE (Zypper)

To install dependencies manually from official repositories (this is done automatically when installing the package):

sudo zypper in libvirt-python python3-textual python3-PyYAML python3-markdown-it-py \
    7zip tmux python3-packaging python3-netifaces python3-requests python3-websockify