aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.nix12
-rw-r--r--hosts/darkstar/default.nix58
-rw-r--r--hosts/darkstar/disks.nix132
-rw-r--r--hosts/darkstar/hardware-configuration.nix57
-rwxr-xr-xscripts/hostid-gen2
5 files changed, 261 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
index 537b247..a8c1b60 100644
--- a/flake.nix
+++ b/flake.nix
@@ -23,6 +23,18 @@
outputs = inputs@{ home-manager-stable, home-manager-unstable, nixos-hardware, nixpkgs-stable, nixpkgs-unstable, ... }: rec {
nixosConfigurations = {
+ darkstar = nixpkgs-unstable.lib.nixosSystem {
+ pkgs = pkgs-unstable;
+ system = "x86_64-linux";
+ modules = [
+ ./hosts/darkstar
+ home-manager-unstable.nixosModules.home-manager {
+ home-manager.users.root = import ./home/root/ginaz.nix;
+ home-manager.users.nipsy = import ./home/nipsy/ginaz.nix;
+ }
+ ];
+ };
+
ginaz = nixpkgs-unstable.lib.nixosSystem {
pkgs = pkgs-unstable;
system = "x86_64-linux";
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;
+}
diff --git a/scripts/hostid-gen b/scripts/hostid-gen
new file mode 100755
index 0000000..8131df1
--- /dev/null
+++ b/scripts/hostid-gen
@@ -0,0 +1,2 @@
+#!/usr/bin/env zsh
+grep -aEo '[[:xdigit:]]{4}' /dev/random | head -2 | xargs | tr A-Z a-z | tr -d ' '