diff options
Diffstat (limited to 'modules/virt')
-rw-r--r-- | modules/virt/default.nix | 19 | ||||
-rw-r--r-- | modules/virt/docker.nix | 15 | ||||
-rw-r--r-- | modules/virt/qemu.nix | 20 |
3 files changed, 54 insertions, 0 deletions
diff --git a/modules/virt/default.nix b/modules/virt/default.nix new file mode 100644 index 0000000..c5d3960 --- /dev/null +++ b/modules/virt/default.nix @@ -0,0 +1,19 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption; + cfg = config.virt; +in { + imports = [ + ./docker.nix + ./qemu.nix + ]; + + options.virt = { + docker = mkEnableOption "Install docker and its components."; + qemu = mkEnableOption "Install qemu and its components."; + }; +} diff --git a/modules/virt/docker.nix b/modules/virt/docker.nix new file mode 100644 index 0000000..5930858 --- /dev/null +++ b/modules/virt/docker.nix @@ -0,0 +1,15 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.virt; +in { + config = mkIf cfg.docker { + virtualisation.docker.enable = true; + virtualisation.docker.storageDriver = "btrfs"; + users.groups.docker.members = [config.user]; + }; +} diff --git a/modules/virt/qemu.nix b/modules/virt/qemu.nix new file mode 100644 index 0000000..f5d9d24 --- /dev/null +++ b/modules/virt/qemu.nix @@ -0,0 +1,20 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.virt; +in { + config = mkIf cfg.qemu { + programs.virt-manager.enable = true; + users.groups.libvirtd.members = [config.user]; + virtualisation.libvirtd.enable = true; + virtualisation.spiceUSBRedirection.enable = true; + + environment.systemPackages = with pkgs; [ + qemu + ]; + }; +} |