hetzner_benchmark: init

This commit is contained in:
Primrose 2025-11-08 12:05:50 +08:00
parent a9701f83b3
commit b1395b27ce
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
5 changed files with 210 additions and 0 deletions

View file

@ -21,6 +21,12 @@
system = "x86_64-linux";
modules = [ ./nix/configurations/installer.nix ];
};
# Not mine, rented on hetzner
hetzner_benchmark = {
system = "x86_64-linux";
modules = [ ./nix/configurations/hetzner_benchmark.nix ];
};
};
packages = import ./nix/packages { inherit sources; };

View file

@ -0,0 +1,39 @@
# The hetzner machine rented to benchmark the cabal comment parser
let
sources = import ../../npins;
hostname = "hetzner_benchmark";
in
{ lib, ... }:
{
imports = [
#
# hostname
#
{ _module.args = { inherit hostname; }; }
{ system.nixos.version = lib.substring 0 8 sources.nixpkgs.revision; }
./hetzner_benchmark/hardware-configuration.nix
(sources.disko + "/module.nix")
../disko/hetzner_benchmark/ext4.nix
../nixosModules/common/system-nixconf.nix
../nixosModules/extra/leana.nix
# TODO: install my user configuration
];
boot.loader.grub.enable = true;
services.openssh.enable = true;
users.users = {
"root".openssh.authorizedKeys.keys = import ../identities.nix ++ [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFza3UN1gWQqh//FkJBzmssQ4lxHdllQGfqPHzG4LQI8 benchmark-machine"
];
};
system.stateVersion = "25.05";
}

View file

@ -0,0 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"nvme"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
# 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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp41s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,37 @@
{
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
priority = 1;
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

View file

@ -0,0 +1,93 @@
# I can't get this working for now :(
# Only nvme1n1 is detected in the installer environment
{
disko.devices = {
disk = {
one = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
BOOT = {
size = "1M";
type = "EF02"; # for grub MBR
};
ESP = {
size = "500M";
type = "EF00";
content = {
type = "mdraid";
name = "boot";
};
};
mdadm = {
size = "100%";
content = {
type = "mdraid";
name = "raid1";
};
};
};
};
};
two = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
};
ESP = {
size = "500M";
type = "EF00";
content = {
type = "mdraid";
name = "boot";
};
};
mdadm = {
size = "100%";
content = {
type = "mdraid";
name = "raid1";
};
};
};
};
};
};
mdadm = {
boot = {
type = "mdadm";
level = 1;
metadata = "1.0";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
raid1 = {
type = "mdadm";
level = 1;
content = {
type = "gpt";
partitions.primary = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
}