{ inputs, modulesPath, ... }: { nixpkgs.hostPlatform = "x86_64-linux"; imports = [ (modulesPath + "/profiles/qemu-guest.nix") inputs.impermanence.nixosModules.impermanence ]; time.timeZone = "Europe/Amsterdam"; i18n.defaultLocale = "en_US.UTF-8"; networking.hostName = "nixos-template"; networking.dhcpcd.enable = false; networking.useNetworkd = true; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; services.qemuGuest.enable = true; nix.settings.trusted-users = [ "root" "@wheel" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; users.users."maintenance" = { isNormalUser = true; group = "maintenance"; extraGroups = [ "wheel" ]; password = "1234"; openssh.authorizedKeys.keyFiles = [ ../../authorized_keys ]; }; users.groups."maintenance" = { }; security.sudo.wheelNeedsPassword = false; services.openssh = { enable = true; settings.PasswordAuthentication = false; settings.KbdInteractiveAuthentication = false; }; programs.ssh.startAgent = true; services.cloud-init = { enable = true; network.enable = true; config = '' system_info: distro: nixos network: renderers: [ 'networkd' ] cloud_init_modules: - migrator - seed_random - growpart cloud_config_modules: - runcmd cloud_final_modules: [] datasource_list: - NoCloud growpart: devices: ['/dev/sda2'] # Resize the filesystem along with the partition runcmd: - btrfs filesystem resize max /nix ''; }; boot.supportedFilesystems = [ "btrfs" ]; fileSystems = { "/" = { device = "none"; fsType = "tmpfs"; options = [ "defaults" "mode=755" ]; }; "/boot" = { device = "/dev/disk/by-label/boot"; fsType = "vfat"; }; "/nix" = { device = "/dev/disk/by-label/btrfs"; fsType = "btrfs"; options = [ "compress=zstd" "subvol=nix" "noatime" ]; }; "/persistent" = { device = "/dev/disk/by-label/btrfs"; fsType = "btrfs"; options = [ "compress=zstd" "subvol=persistent" "noatime" ]; autoResize = true; neededForBoot = true; }; }; }