1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8with lib;
9
10let
11
12 cfg = config.virtualisation.appvm;
13
14in
15{
16
17 options = {
18 virtualisation.appvm = {
19 enable = mkOption {
20 type = types.bool;
21 default = false;
22 description = ''
23 This enables AppVMs and related virtualisation settings.
24 '';
25 };
26 user = mkOption {
27 type = types.str;
28 description = ''
29 AppVM user login. Currently only AppVMs are supported for a single user only.
30 '';
31 };
32 };
33
34 };
35
36 config = mkIf cfg.enable {
37 virtualisation.libvirtd = {
38 enable = true;
39 qemu.verbatimConfig = ''
40 namespaces = []
41 user = "${cfg.user}"
42 group = "users"
43 remember_owner = 0
44 '';
45 };
46
47 users.users."${cfg.user}" = {
48 packages = [ pkgs.appvm ];
49 extraGroups = [ "libvirtd" ];
50 };
51
52 };
53
54}