summaryrefslogtreecommitdiff
path: root/nixos/zinzin.nix
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2023-07-18 23:15:40 +0200
committerAlex Auvolat <alex@adnab.me>2023-07-18 23:15:40 +0200
commita9e15c9f99de745b11b5a8b4277ce037a9230521 (patch)
tree168937b5aebc6bd70bbb46509d073d7ff87c160d /nixos/zinzin.nix
parentb2bc93b515d007a7abb0a22e31687537c9ca51f5 (diff)
downloaduser-config-a9e15c9f99de745b11b5a8b4277ce037a9230521.tar.gz
user-config-a9e15c9f99de745b11b5a8b4277ce037a9230521.zip
add zinzin machine with rootless nixos on zfs (pretty nice config!)
Diffstat (limited to 'nixos/zinzin.nix')
-rw-r--r--nixos/zinzin.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/nixos/zinzin.nix b/nixos/zinzin.nix
new file mode 100644
index 0000000..12e3d1f
--- /dev/null
+++ b/nixos/zinzin.nix
@@ -0,0 +1,93 @@
+# 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")
+ ./common.nix
+ ./icewm.nix
+ ];
+
+ networking.hostName = "zinzin";
+ networking.hostId = "304a68ef";
+
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ boot.initrd.luks.devices = {
+ lukszfs = {
+ device = "/dev/disk/by-uuid/f75e45a4-dc1e-4f38-b2d8-3336ec3790ef";
+ allowDiscards = true;
+ };
+ };
+
+ # ---- standard filesystems ----
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/3BC8-460B";
+ fsType = "vfat";
+ };
+
+ fileSystems."/home" =
+ { device = "zinzin/nixos/home";
+ fsType = "zfs";
+ neededForBoot = true; # because contains password files used below
+ };
+
+ fileSystems."/nix" =
+ { device = "zinzin/nixos/nix";
+ fsType = "zfs";
+ };
+
+ swapDevices = [ ];
+
+ # ---- tmpfs root filesystem with special persisted directory ----
+
+ fileSystems."/" = {
+ device = "none";
+ fsType = "tmpfs";
+ options = [ "defaults" "size=4G" "mode=755" ];
+ };
+
+ fileSystems."/persist" =
+ { device = "zinzin/nixos/persist";
+ fsType = "zfs";
+ neededForBoot = true; # because contains /var/log
+ };
+
+ environment.etc."machine-id".source = "/persist/etc/machine-id";
+
+ fileSystems."/etc/NetworkManager/system-connections" =
+ { device = "/persist/etc/NetworkManager/system-connections";
+ fsType = "none";
+ depends = [ "/persist" "/mnt-root/persist" ];
+ options = [ "bind" ];
+ };
+
+ fileSystems."/var/log" =
+ { device = "/persist/var/log";
+ fsType = "none";
+ depends = [ "/persist" "/mnt-root/persist" ];
+ options = [ "bind" ];
+ };
+
+ # ---- immutable user config for tmpfs root ----
+
+ users.mutableUsers = false;
+ users.users.lx.passwordFile = "/home/lx/.password";
+
+ # ----
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}