/ modules / nixos / virtualisation.nix
virtualisation.nix
 1  {
 2    pkgs,
 3    ...
 4  }:
 5  {
 6    virtualisation = {
 7      lxc.enable = false;
 8      # useEFIBoot = false;
 9      # tpmr.enable = false;
10      # useSecureBoot = false;
11      # useDefaultFileSystems = true;
12      spiceUSBRedirection.enable = true;
13  
14      libvirtd = {
15        enable = true;
16        onBoot = "ignore";
17  
18        nss = {
19          enable = true;
20          enableGuest = true;
21        };
22  
23        qemu = {
24          swtpm.enable = true;
25          vhostUserPackages = with pkgs; [
26            virtiofsd
27          ];
28        };
29      };
30  
31      oci-containers = {
32        backend = "docker";
33  
34        containers = {
35          # excalidraw = {
36          #   pull = "missing"; # "always" | "missing" | "never" | "newer"
37          #   autoStart = false;
38          #   hostname = "excalidraw";
39          #   workdir = "/var/lib/excalidraw";
40          #   image = "excalidraw/excalidraw:latest";
41  
42          #   # cmd = [ ];
43          #   ports = [
44          #     "5000:80"
45          #   ];
46          # };
47        };
48      };
49  
50      # only enable either docker or podman -- Not both
51      docker = {
52        enable = true;
53  
54        autoPrune = {
55          enable = true;
56          persistent = true;
57          flags = [
58            "--all"
59          ];
60        };
61      };
62  
63      podman = {
64        enable = false;
65        dockerCompat = true;
66        dockerSocket.enable = true;
67      };
68    };
69  }