diff --git a/example-vm/default.nix b/example-vm/default.nix new file mode 100644 index 0000000..305f847 --- /dev/null +++ b/example-vm/default.nix @@ -0,0 +1,40 @@ +{ + import = [ ./vm_config.nix ]; + + time.timeZone = "Europe/Berlin"; + i18n.defaultLocale = "en_US.UTF-8"; + users.users.jdoe = { + password = "example"; + isNormalUser = true; + extraGroups = [ + "wheel" + "video" + "networkmanager" + ]; + }; + home-manager.users.jdoe = { + home = { + username = "jdoe"; + homeDirectory = "/home/jdoe"; + }; + jhome = { + enable = true; + gui.enable = true; + dev = { + enable = true; + rust.enable = true; + }; + }; + }; + + # password is 'test' see module documentation for more options + services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'"; + jconfig = { + enable = true; + dev = { + enable = true; + jupyter.enable = true; + }; + gui.enable = true; + }; +} diff --git a/machines/vm/default.nix b/example-vm/vm-config.nix similarity index 50% rename from machines/vm/default.nix rename to example-vm/vm-config.nix index ced0faa..1b2b4d0 100644 --- a/machines/vm/default.nix +++ b/example-vm/vm-config.nix @@ -1,31 +1,34 @@ +## Default QEMU guest config { - services.qemuGuest.enable = true; + services = { + qemuGuest.enable = true; + openssh.enable = true; + }; - boot.initrd.availableKernelModules = [ - "xhci_pci" - "ehci_pci" - "ahci" - "usbhid" - "usb_storage" - "sd_mod" - "virtio_balloon" - "virtio_blk" - "virtio_pci" - "virtio_ring" - # "virtio_vga" - "virtio_gpu" - ]; + boot = { + loader.systemd-boot.enable = true; + initrd.availableKernelModules = [ + "xhci_pci" + "ehci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + "virtio_balloon" + "virtio_blk" + "virtio_pci" + "virtio_ring" + # "virtio_vga" + "virtio_gpu" + ]; + }; fileSystems."/".device = "/dev/disk/by-label/nixos"; - boot.loader.systemd-boot.enable = true; - - services.openssh.enable = true; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "22.11"; # Did you read the comment? + system.stateVersion = "24.11"; # Did you read the comment? } diff --git a/flake-modules/example-vm.nix b/flake-modules/example-vm.nix index f2a4b74..d6b88de 100644 --- a/flake-modules/example-vm.nix +++ b/flake-modules/example-vm.nix @@ -11,46 +11,8 @@ in inherit pkgs; modules = [ inputs.self.nixosModules.default - ../machines/vm - # import vm module - { - time.timeZone = "Europe/Berlin"; - i18n.defaultLocale = "en_US.UTF-8"; - users.users.jdoe = { - password = "example"; - isNormalUser = true; - extraGroups = [ - "wheel" - "video" - "networkmanager" - ]; - }; - home-manager.users.jdoe = { - home = { - username = "jdoe"; - homeDirectory = "/home/jdoe"; - }; - jhome = { - enable = true; - gui.enable = true; - dev = { - enable = true; - rust.enable = true; - }; - }; - }; - nix.registry.nixpkgs.flake = inputs.nixpkgs; - # password is 'test' see module documentation for more options - services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'"; - jconfig = { - enable = true; - dev = { - enable = true; - jupyter.enable = true; - }; - gui.enable = true; - }; - } + ../example-vm # import vm configuration + { nix.registry.nixpkgs.flake = inputs.nixpkgs; } ]; };