diff options
author | Mark Nipper <nipsy@bitgnome.net> | 2024-05-03 00:10:05 -0700 |
---|---|---|
committer | Mark Nipper <nipsy@bitgnome.net> | 2024-05-03 00:10:05 -0700 |
commit | 76137eca434293eaf138c95e285d128cae903119 (patch) | |
tree | e3d97cf14b4680b81be42ce9bbdfada5316a3f41 /hosts | |
parent | d3fcdee236c02239de4117f731651c3c546f02e3 (diff) | |
download | nix-76137eca434293eaf138c95e285d128cae903119.tar nix-76137eca434293eaf138c95e285d128cae903119.tar.gz nix-76137eca434293eaf138c95e285d128cae903119.tar.bz2 nix-76137eca434293eaf138c95e285d128cae903119.tar.lz nix-76137eca434293eaf138c95e285d128cae903119.tar.xz nix-76137eca434293eaf138c95e285d128cae903119.tar.zst nix-76137eca434293eaf138c95e285d128cae903119.zip |
Add host darkstar
Diffstat (limited to 'hosts')
-rw-r--r-- | hosts/darkstar/default.nix | 58 | ||||
-rw-r--r-- | hosts/darkstar/disks.nix | 132 | ||||
-rw-r--r-- | hosts/darkstar/hardware-configuration.nix | 57 |
3 files changed, 247 insertions, 0 deletions
diff --git a/hosts/darkstar/default.nix b/hosts/darkstar/default.nix new file mode 100644 index 0000000..f372762 --- /dev/null +++ b/hosts/darkstar/default.nix @@ -0,0 +1,58 @@ +{ config, pkgs, ... }: { + boot = { + initrd.kernelModules = [ "zfs" ]; + kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; + loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/efiboot/efi1"; + }; + systemd-boot = { + enable = true; + extraInstallCommands = '' + mount -t vfat -o iocharset=iso8859-1 /dev/disk/by-label/ESP1 /efiboot/efi1 + mount -t vfat -o iocharset=iso8859-1 /dev/disk/by-label/ESP2 /efiboot/efi2 + cp -r /efiboot/efi1/* /efiboot/efi2 + ''; + }; + timeout = 3; + }; + supportedFilesystems = [ "zfs" ]; + zfs.devNodes = "/dev/disk/by-label"; + }; + + #environment.systemPackages = with pkgs; [ + # something + # somethingelse + #]; + + imports = [ + ./hardware-configuration.nix + ../common/core + #../common/optional/db.nix + #../common/optional/dev.nix + #../common/optional/ebooks.nix + #../common/optional/games.nix + #../common/optional/google-authenticator.nix + ../common/optional/misc.nix + #../common/optional/multimedia.nix + #../common/optional/pipewire.nix + #../common/optional/sdr.nix + ../common/optional/services/openssh.nix + #../common/optional/services/xorg.nix + #../common/optional/sound.nix + ../common/optional/zfs.nix + ../common/users/nipsy + ../common/users/root + ]; + + networking = { + hostId = "f9ca5efe"; + hostName = "darkstar"; + domain = "bitgnome.net"; + #networkmanager.enable = true; + nftables.enable = true; + }; + + system.stateVersion = "23.11"; +} diff --git a/hosts/darkstar/disks.nix b/hosts/darkstar/disks.nix new file mode 100644 index 0000000..64bc36b --- /dev/null +++ b/hosts/darkstar/disks.nix @@ -0,0 +1,132 @@ +{ + disko.devices = { + disk = { + nvme0n1 = { + type = "disk"; + device = "/dev/nvme0n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "1G"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/efiboot/efi1"; + mountOptions = [ "defaults" ]; + extraArgs = [ "-n ESP1" ]; + }; + }; + swap = { + size = "16G"; + type = "8200"; + content = { + type = "swap"; + extraArgs = [ "-L swap1" ]; + }; + }; + zfs = { + size = "100%"; + content = { + type = "zfs"; + pool = "rpool"; + }; + }; + }; + }; + }; + nvme1n1 = { + type = "disk"; + device = "/dev/nvme1n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "1G"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/efiboot/efi2"; + mountOptions = [ "defaults" ]; + extraArgs = [ "-n ESP2" ]; + }; + }; + swap = { + size = "16G"; + type = "8200"; + content = { + type = "swap"; + extraArgs = [ "-L swap2" ]; + }; + }; + zfs = { + size = "100%"; + content = { + type = "zfs"; + pool = "rpool"; + }; + }; + }; + }; + }; + }; + zpool = { + rpool = { + mode = "mirror"; + type = "zpool"; + rootFsOptions = { + acltype = "posixacl"; + canmount = "off"; + compression = "on"; + dnodesize = "auto"; + relatime = "on"; + xattr = "sa"; + }; + options = { + ashift = "12"; + autotrim = "on"; + }; + datasets = { + "local" = { + type = "zfs_fs"; + options.mountpoint = "none"; + }; + "local/root" = { + type = "zfs_fs"; + options.mountpoint = "legacy"; + mountpoint = "/"; + }; + "local/nix" = { + type = "zfs_fs"; + options = { + atime = "off"; + mountpoint = "legacy"; + }; + mountpoint = "/nix"; + }; + "user" = { + type = "zfs_fs"; + options.mountpoint = "none"; + }; + "user/home" = { + type = "zfs_fs"; + options.mountpoint = "legacy"; + mountpoint = "/home"; + }; + "user/home/root" = { + type = "zfs_fs"; + options.mountpoint = "legacy"; + mountpoint = "/root"; + }; + "user/home/nipsy" = { + type = "zfs_fs"; + options.mountpoint = "legacy"; + mountpoint = "/home/nipsy"; + }; + }; + }; + }; + }; +} diff --git a/hosts/darkstar/hardware-configuration.nix b/hosts/darkstar/hardware-configuration.nix new file mode 100644 index 0000000..3acea79 --- /dev/null +++ b/hosts/darkstar/hardware-configuration.nix @@ -0,0 +1,57 @@ +# 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" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "rpool/local/root"; + fsType = "zfs"; + }; + + fileSystems."/efiboot/efi2" = + { device = "/dev/disk/by-label/ESP2"; + fsType = "vfat"; + options = [ "X-mount.mkdir" "iocharset=iso8859-1" ]; + }; + + fileSystems."/nix" = + { device = "rpool/local/nix"; + fsType = "zfs"; + }; + + fileSystems."/root" = + { device = "rpool/user/home/root"; + fsType = "zfs"; + }; + + fileSystems."/home/nipsy" = + { device = "rpool/user/home/nipsy"; + fsType = "zfs"; + }; + + swapDevices = + [ { device = "/dev/disk/by-label/swap1"; } + { device = "/dev/disk/by-label/swap2"; } + ]; + + # 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.enp116s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp117s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; + + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} |