Run a NixOS closure as a microVM with desktop integration
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.
|
||
|---|---|---|
| libkrun@72b8b0870c | ||
| libkrunfw@4b98077866 | ||
| muvm@d6c7496fdb | ||
| .envrc | ||
| .gitignore | ||
| .gitmodules | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE.md | ||
| munix | ||
| radvmmio.patch | ||
| README.md | ||
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)