Release NixOS 23.11
[NixPkgs.git] / nixos / modules / virtualisation / appvm.nix
blob9fe2995d37a060b4cdd9fabc955f5c7ead93ad6c
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   cfg = config.virtualisation.appvm;
9 in {
11   options = {
12     virtualisation.appvm = {
13       enable = mkOption {
14         type = types.bool;
15         default = false;
16         description = lib.mdDoc ''
17           This enables AppVMs and related virtualisation settings.
18         '';
19       };
20       user = mkOption {
21         type = types.str;
22         description = lib.mdDoc ''
23           AppVM user login. Currently only AppVMs are supported for a single user only.
24         '';
25       };
26     };
28   };
30   config = mkIf cfg.enable {
31     virtualisation.libvirtd = {
32       enable = true;
33       qemu.verbatimConfig = ''
34         namespaces = []
35         user = "${cfg.user}"
36         group = "users"
37         remember_owner = 0
38       '';
39     };
41     users.users."${cfg.user}" = {
42       packages = [ pkgs.appvm ];
43       extraGroups = [ "libvirtd" ];
44     };
46   };