Run a NixOS closure as a microVM with desktop integration
Find a file
Jörg Thalheim 348cedab1a Refactor testvm into reusable nixosModule for multiple architectures
This extracts the testvm configuration into a shared nixosModules.testvm
module that can be reused across different architectures. The module is
now used by both testvm-x86_64 and testvm-aarch64 nixosConfigurations,
eliminating code duplication.

Additionally, nixosConfigurations have been moved to the top-level flake
outputs to follow Nix conventions, rather than being nested inside
eachDefaultSystem. The virtwl proxy reference now uses ${pkgs.system}
instead of hardcoded x86_64-linux to support both architectures.
2025-11-03 15:45:47 +01:00
libkrun@72b8b0870c Integrate systemd 2025-10-31 04:53:19 -03:00
libkrunfw@4b98077866 Integrate systemd 2025-10-31 04:53:19 -03:00
muvm@d6c7496fdb Integrate systemd 2025-10-31 04:53:19 -03:00
.envrc Initial commit 2025-09-25 22:29:24 -03:00
.gitignore Initial commit 2025-09-25 22:29:24 -03:00
.gitmodules Integrate systemd 2025-10-31 04:53:19 -03:00
flake.lock Integrate systemd 2025-10-31 04:53:19 -03:00
flake.nix Refactor testvm into reusable nixosModule for multiple architectures 2025-11-03 15:45:47 +01:00
LICENSE.md Initial commit 2025-09-25 22:29:24 -03:00
munix Integrate systemd 2025-10-31 04:53:19 -03:00
radvmmio.patch Initial commit 2025-09-25 22:29:24 -03:00
README.md Initial commit 2025-09-25 22:29:24 -03:00

munix

WIP: A microVM runner for NixOS systems with desktop integration, powered by muvm/libkrun.

Development

Building an example closure:

nix build '.#nixosConfigurations.x86_64-linux.testvm.config.system.build.toplevel'

Running the nix build:

nix run '.#packages.x86_64-linux.munix' $(readlink result)

Working on muvm & munix locally (not built into the nix store):

cd muvm && cargo build --locked --release
PATH=$PWD/muvm/target/release:$PATH ./munix $(readlink result)