nix-config/modules/features/virtualization-libvirt.nix
2026-04-15 18:26:05 -04:00

63 lines
1.5 KiB
Nix

{ ... }:
{
config.dendritic.features.virtualization-libvirt = {
nixosModules = [
(
{ config, pkgs, ... }:
let
user = config.dendritic.current.primaryUser;
in
{
networking.firewall.trustedInterfaces = [ "virbr0" ];
boot.kernelModules = [ "kvm-amd" ];
environment.systemPackages = with pkgs; [
virt-manager
virtiofsd
vagrant
];
users.users.${user} = {
extraGroups = [
"libvirtd"
"qemu-libvirtd"
"kvm"
];
};
# Allow VM to run as non-root without ulimit
security.pam.loginLimits = [
{
domain = "${user}";
type = "soft";
item = "memlock";
value = "20000000";
}
{
domain = "${user}";
type = "hard";
item = "memlock";
value = "20000000";
}
];
virtualisation.libvirtd = {
enable = true;
# qemu.ovmf.enable = true;
# qemu.runAsRoot = false;
onBoot = "ignore";
onShutdown = "shutdown";
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
};
};
users.extraGroups.libvirtd.members = [ "${user}" ];
}
)
];
};
}