diff --git a/defaults/base-vm/default.nix b/defaults/base-vm/default.nix deleted file mode 100644 index b0d624b..0000000 --- a/defaults/base-vm/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - config, - lib, - modulesPath, - pkgs, - ... -}: - -{ - - imports = [ - (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.loader.grub.enable = true; - - system.autoUpgrade.allowReboot = true; - - services.qemuGuest.enable = true; - - boot.initrd.availableKernelModules = [ - "ahci" - "xhci_pci" - "sr_mod" - ]; - - # Taken from https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/profiles/minimal.nix - documentation.enable = lib.mkDefault false; - - documentation.doc.enable = lib.mkDefault false; - - documentation.info.enable = lib.mkDefault false; - - documentation.man.enable = lib.mkDefault false; - - documentation.nixos.enable = lib.mkDefault false; - -} diff --git a/nixos-configurations/lindberg-build/default.nix b/nixos-configurations/lindberg-build/default.nix index 1cbfd2f..b0f1911 100644 --- a/nixos-configurations/lindberg-build/default.nix +++ b/nixos-configurations/lindberg-build/default.nix @@ -2,7 +2,6 @@ { imports = [ - ../../defaults/base-vm ../../defaults/meta ./applications @@ -10,6 +9,7 @@ ./networking.nix ./secrets.nix ]; + qois.system.virtual-machine.enable = true; # Set your time zone. time.timeZone = "Europe/Amsterdam"; diff --git a/nixos-configurations/lindberg-nextcloud/default.nix b/nixos-configurations/lindberg-nextcloud/default.nix index 78fc78d..d9ccc62 100644 --- a/nixos-configurations/lindberg-nextcloud/default.nix +++ b/nixos-configurations/lindberg-nextcloud/default.nix @@ -2,13 +2,14 @@ { imports = [ - ../../defaults/base-vm ../../defaults/meta ./applications ./backup.nix ./secrets.nix ]; + qois.system.virtual-machine.enable = true; + boot.loader.grub.device = "/dev/vda"; fileSystems."/" = { device = "/dev/disk/by-uuid/5b6823ec-921f-400a-a7c0-3fe34d56ae12"; diff --git a/nixos-configurations/lindberg-webapps/default.nix b/nixos-configurations/lindberg-webapps/default.nix index 1cbfd2f..f875d44 100644 --- a/nixos-configurations/lindberg-webapps/default.nix +++ b/nixos-configurations/lindberg-webapps/default.nix @@ -2,7 +2,6 @@ { imports = [ - ../../defaults/base-vm ../../defaults/meta ./applications @@ -11,6 +10,8 @@ ./secrets.nix ]; + qois.system.virtual-machine.enable = true; + # Set your time zone. time.timeZone = "Europe/Amsterdam"; diff --git a/nixos-modules/cloud/default.nix b/nixos-modules/cloud/default.nix index 243df13..db516bd 100644 --- a/nixos-modules/cloud/default.nix +++ b/nixos-modules/cloud/default.nix @@ -11,6 +11,7 @@ let in with lib; { + options.qois.cloud = { enable = mkEnableOption "Enable qois cloud service"; diff --git a/nixos-modules/system/default.nix b/nixos-modules/system/default.nix index ce133f9..7fd1b21 100644 --- a/nixos-modules/system/default.nix +++ b/nixos-modules/system/default.nix @@ -7,10 +7,11 @@ }: { imports = [ - ./unfree.nix ./applications.nix ./overlays.nix ./security.nix + ./unfree.nix + ./virtual-machine.nix ]; boot.loader.timeout = 2; diff --git a/nixos-modules/system/virtual-machine.nix b/nixos-modules/system/virtual-machine.nix new file mode 100644 index 0000000..5e5a8ae --- /dev/null +++ b/nixos-modules/system/virtual-machine.nix @@ -0,0 +1,58 @@ +{ + config, + lib, + ... +}: +let + cfg = config.qois.system.virtual-machine; +in +with lib; +{ + options.qois.system.virtual-machine.enable = + mkEnableOption "Enable qois system vm default configuration"; + + config = lib.mkIf cfg.enable { + + boot.loader.grub.enable = true; + + system.autoUpgrade.allowReboot = true; + + services.qemuGuest.enable = true; + + boot.initrd.availableKernelModules = + [ + "ahci" + "xhci_pci" + "sr_mod" + ] + ++ + # Taken from https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/profiles/qemu-guest.nix + [ + "virtio_net" + "virtio_pci" + "virtio_mmio" + "virtio_blk" + "virtio_scsi" + "9p" + "9pnet_virtio" + ]; + boot.initrd.kernelModules = [ + "virtio_balloon" + "virtio_console" + "virtio_rng" + "virtio_gpu" + ]; + + # Taken from https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/profiles/minimal.nix + documentation.enable = lib.mkDefault false; + + documentation.doc.enable = lib.mkDefault false; + + documentation.info.enable = lib.mkDefault false; + + documentation.man.enable = lib.mkDefault false; + + documentation.nixos.enable = lib.mkDefault false; + + }; +}