Ready-to-run virtual images for Aenigma, built for both VirtualBox and libvirt/QEMU.
Download and install Vagrant from the official page for your operating system: https://developer.hashicorp.com/vagrant/downloads
You only need one of the following, depending on your operating system and preference.
If you’re on Ubuntu or Debian, open a terminal and run:
sudo apt update
sudo apt install -y qemu-system-x86 libvirt-daemon-system libvirt-clients bridge-utils virt-manager libvirt-dev
Use
qemu-system-arminstead ofqemu-system-x86if you’re on an ARM64 machine (e.g. Apple Silicon running Linux). On newer Debian/Ubuntu releases, the olderqemu-kvmpackage name no longer works directly — it now points to one of these architecture-specific packages, so you need to pick the right one yourself.
libvirt-devis required to install thevagrant-libvirtplugin below — without it, the plugin install fails with a missing-library error. On Fedora/RHEL-based distros the equivalent package is calledlibvirt-develinstead.
This also installs virt-manager, a graphical tool for managing your VMs
(start/stop/pause, view the VM’s screen, check resource usage) if you’d rather not use
the terminal after setup. You can open it any time by running virt-manager or finding
“Virtual Machine Manager” in your applications menu.
Then add yourself to the libvirt group so you don’t need sudo for every command,
and apply it:
sudo usermod -aG libvirt $(whoami)
newgrp libvirt
If you’re not on Ubuntu/Debian (e.g. Fedora, Arch), install the equivalent packages using your distro’s package manager (
dnf,pacman, etc.) — search “install libvirt qemu-kvm <your distro>” if unsure.
Finally, install the Vagrant plugin that lets Vagrant talk to libvirt (Vagrant doesn’t support it out of the box like it does VirtualBox):
vagrant plugin install vagrant-libvirt
You have two options — pick whichever is easier for you.
Download the repository using this link
or, using git:
git clone https://github.com/m3sserschmitt/aenigma-boxes.git
cd aenigma-boxes
vagrant up
The repository already includes a ready-made Vagrantfile, so this is all you need to
do.
Inside it, create a file named exactly Vagrantfile (no file extension) with this
content:
Vagrant.configure("2") do |config|
config.vm.box = "m3sserschmitt/aenigma5"
config.vm.box_url = "https://boxes.aenigma.ro/metadata.json"
config.vm.define "aenigma5"
config.vm.provider "virtualbox" do |vb|
vb.name = "aenigma5"
vb.memory = 2048
vb.cpus = 2
end
config.vm.provider "libvirt" do |lv|
lv.default_prefix = ""
lv.memory = 2048
lv.cpus = 2
end
config.vm.synced_folder ".", "/vagrant", disabled: true
end
vb.name/lv.default_prefix+config.vm.definecontrol the name shown in VirtualBox Manager or virt-manager — without these, the VM name defaults to something like your project folder name plus “default”, which isn’t very descriptive.
Open a terminal in that folder and run:
vagrant up
Either way, Vagrant will automatically detect whichever provider you installed (VirtualBox or libvirt) and download the matching image the first time you run it — this may take a few minutes depending on your internet connection.
Once vagrant up finishes, you can log into the VM’s command line with:
vagrant ssh
This drops you into a shell running inside the VM, as if you’d SSH’d into a remote server. From there you can run commands, inspect files, start services, etc. — everything happens inside the isolated VM, not on your actual computer.
To leave the VM’s shell and return to your own terminal, either run exit or press
Ctrl+D. This does not stop the VM — it keeps running in the background so you can
vagrant ssh back in any time.
A few other commands you’ll likely want:
vagrant halt # shut the VM down (keeps it on disk for later)
vagrant up # start it again
vagrant destroy # delete the VM entirely (removes its disk too)
Run these from the same folder as the
Vagrantfile— Vagrant uses that folder to know which VM you’re referring to.
vagrant box update
vagrant up --provider=virtualbox
# or
vagrant up --provider=libvirt
On Linux, if vagrant up complains about permissions with libvirt, make sure you ran
newgrp libvirt (or log out and back in) after the usermod step above.
qemu:///system the first time you open it —
this usually happens because your user’s libvirt group membership (from the usermod
step) hasn’t been picked up by your desktop session yet, even if it worked in a terminal
via newgrp. Logging out and back in (or rebooting) refreshes your full session’s group
membership and typically resolves it. If it persists after that, try:
libvirtd service is actually running: sudo systemctl status
libvirtdgroups $(whoami) should list
libvirtThis repository is licensed under the MIT License. Feel free to copy, modify and distribute it - see the LICENSE file for details.
You can report errors or suggest improvements at contact@aenigma.ro