From be1f3052076cef965b32cb0fc785a66079a3db5d Mon Sep 17 00:00:00 2001 From: transcaffeine Date: Sat, 5 Jul 2025 12:39:50 +0200 Subject: [PATCH] feat: add host 'nixos-unstable' as a testing VM --- flake.nix | 5 ++ hosts/nixos-unstable/configuration.nix | 47 +++++++++++++++++++ hosts/nixos-unstable/default.nix | 7 +++ .../nixos-unstable/hardware-configuration.nix | 35 ++++++++++++++ 4 files changed, 94 insertions(+) create mode 100644 hosts/nixos-unstable/configuration.nix create mode 100644 hosts/nixos-unstable/default.nix create mode 100644 hosts/nixos-unstable/hardware-configuration.nix diff --git a/flake.nix b/flake.nix index 25900f3..ff273f4 100644 --- a/flake.nix +++ b/flake.nix @@ -14,5 +14,10 @@ ]; specialArgs = { inherit inputs; }; }; + nixosConfigurations.nixos-unstable = nixpkgs-unstable.lib.nixosSystem { + modules = [ + ./hosts/nixos-unstable + ]; + }; }; } diff --git a/hosts/nixos-unstable/configuration.nix b/hosts/nixos-unstable/configuration.nix new file mode 100644 index 0000000..0cf9a1f --- /dev/null +++ b/hosts/nixos-unstable/configuration.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: + +{ + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Use latest kernel. + boot.kernelPackages = pkgs.linuxPackages_latest; + + networking.hostName = "nixos-unstable"; # Define your hostname. + + # Set your time zone. + time.timeZone = "Europe/Amsterdam"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.mutableUsers = false; + users.users.root.hashedPassword = "$y$j9T$i4Yx7PqpLH9bPaNb4SVLm/$dv2gVHCHiRZv.Y00rbNx4QeIExunnfHp57WEnh8qLF1"; + users.users.alice = { + isNormalUser = true; + hashedPassword = ""; + extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + packages = with pkgs; [ + tree + ]; + }; + + environment.systemPackages = with pkgs; [ + ]; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + system.stateVersion = "25.05"; # Did you read the comment? + +} diff --git a/hosts/nixos-unstable/default.nix b/hosts/nixos-unstable/default.nix new file mode 100644 index 0000000..487cd99 --- /dev/null +++ b/hosts/nixos-unstable/default.nix @@ -0,0 +1,7 @@ +{ inputs, pkgs, ...}: { + imports = [ + ./hardware-configuration.nix + ./configuration.nix + ../../profiles/base + ]; +} diff --git a/hosts/nixos-unstable/hardware-configuration.nix b/hosts/nixos-unstable/hardware-configuration.nix new file mode 100644 index 0000000..873901f --- /dev/null +++ b/hosts/nixos-unstable/hardware-configuration.nix @@ -0,0 +1,35 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; + boot.initrd.kernelModules = [ ]; + boot.initrd.systemd.enable = true; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/d696e6e0-64f1-4cb5-9ac6-57a3fd4634cc"; + fsType = "btrfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/FA31-9186"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +}