aboutsummaryrefslogtreecommitdiff
path: root/hosts
diff options
context:
space:
mode:
Diffstat (limited to 'hosts')
-rw-r--r--hosts/eden/default.nix52
-rw-r--r--hosts/eden/hardware.nix38
-rw-r--r--hosts/hive/default.nix44
-rw-r--r--hosts/hive/hardware.nix39
-rw-r--r--hosts/oasis/default.nix51
-rw-r--r--hosts/oasis/hardware.nix39
-rw-r--r--hosts/raindog/default.nix44
-rw-r--r--hosts/raindog/hardware.nix38
-rw-r--r--hosts/sparrow/default.nix43
-rw-r--r--hosts/sparrow/hardware.nix41
-rw-r--r--hosts/woodpecker/default.nix39
-rw-r--r--hosts/woodpecker/hardware.nix44
12 files changed, 512 insertions, 0 deletions
diff --git a/hosts/eden/default.nix b/hosts/eden/default.nix
new file mode 100644
index 0000000..02be58f
--- /dev/null
+++ b/hosts/eden/default.nix
@@ -0,0 +1,52 @@
+{ lib, inputs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = true;
+ };
+ };
+
+ networking = {
+ hostName = "eden";
+ hostId = "bd03847d"; # Required for ZFS support.
+ nameservers = [ "10.44.0.1" ];
+ defaultGateway.address = "10.44.0.1";
+ interfaces.eno1 = {
+ useDHCP = false;
+ ipv4.addresses = [{
+ address = "10.44.4.101";
+ prefixLength = 16;
+ }];
+ };
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+ zfs.extraPools = [ "lagoon" ];
+ };
+
+ motd = {
+ networkInterfaces = lib.lists.singleton "eno1";
+ servicesToCheck = [
+ "caddy"
+ "immich-machine-learning"
+ "immich-server"
+ "postgresql"
+ "redis-immich"
+ "zfs-zed"
+ ];
+ };
+}
diff --git a/hosts/eden/hardware.nix b/hosts/eden/hardware.nix
new file mode 100644
index 0000000..00210c4
--- /dev/null
+++ b/hosts/eden/hardware.nix
@@ -0,0 +1,38 @@
+# 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" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/f3bedccb-3f2b-49ae-9be4-5ec9fe683027";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/78C3-E7F8";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
+
+ swapDevices = [ ];
+
+ # 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.eno1.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/hosts/hive/default.nix b/hosts/hive/default.nix
new file mode 100644
index 0000000..c164b92
--- /dev/null
+++ b/hosts/hive/default.nix
@@ -0,0 +1,44 @@
+{ lib, inputs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = true;
+ };
+ };
+
+ networking = {
+ hostName = "hive";
+ nameservers = [ "10.44.0.1" ];
+ defaultGateway.address = "10.44.0.1";
+ interfaces.eno1 = {
+ useDHCP = false;
+ ipv4.addresses = [{
+ address = "10.44.4.102";
+ prefixLength = 16;
+ }];
+ };
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot.loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+
+ motd = {
+ networkInterfaces = lib.lists.singleton "eno1";
+ servicesToCheck = [
+ "caddy"
+ "gotosocial"
+ ];
+ };
+}
diff --git a/hosts/hive/hardware.nix b/hosts/hive/hardware.nix
new file mode 100644
index 0000000..9e7a2f0
--- /dev/null
+++ b/hosts/hive/hardware.nix
@@ -0,0 +1,39 @@
+# 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" "ehci_pci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/e336b96d-b3b4-4098-a0ca-9001fd381f88";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/F804-40A9";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
+
+ swapDevices = [ ];
+
+ # 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.eno1.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/hosts/oasis/default.nix b/hosts/oasis/default.nix
new file mode 100644
index 0000000..8ef44f9
--- /dev/null
+++ b/hosts/oasis/default.nix
@@ -0,0 +1,51 @@
+{ lib, inputs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = true;
+ };
+ };
+
+ networking = {
+ hostName = "oasis";
+ hostId = "7a7d723a"; # Required for ZFS support.
+ nameservers = [ "10.44.0.1" ];
+ defaultGateway.address = "10.44.0.1";
+ interfaces.enp59s0 = {
+ useDHCP = false;
+ ipv4.addresses = [{
+ address = "10.44.4.103";
+ prefixLength = 16;
+ }];
+ };
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+ zfs.extraPools = [ "tank" ];
+ };
+
+ motd = {
+ networkInterfaces = lib.lists.singleton "enp59s0";
+ servicesToCheck = [
+ "caddy"
+ "sftpgo"
+ "zfs-zed"
+ ];
+ };
+
+ services.sftpgo.dataDir = "/tank/sftpgo";
+}
diff --git a/hosts/oasis/hardware.nix b/hosts/oasis/hardware.nix
new file mode 100644
index 0000000..3870379
--- /dev/null
+++ b/hosts/oasis/hardware.nix
@@ -0,0 +1,39 @@
+# 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" "usb_storage" "sd_mod" "sdhci_pci" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/3e333010-7dae-47cf-9288-85d58ddda699";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/8430-1FF8";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
+
+ swapDevices = [ ];
+
+ # 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.enp59s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/hosts/raindog/default.nix b/hosts/raindog/default.nix
new file mode 100644
index 0000000..0eb2d30
--- /dev/null
+++ b/hosts/raindog/default.nix
@@ -0,0 +1,44 @@
+{ lib, inputs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = true;
+ };
+ };
+
+ networking = {
+ hostName = "raindog";
+ nameservers = [ "10.44.0.1" ];
+ defaultGateway.address = "10.44.0.1";
+ interfaces.eno1 = {
+ useDHCP = false;
+ ipv4.addresses = [{
+ address = "10.44.4.100";
+ prefixLength = 16;
+ }];
+ };
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot.loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+
+ motd = {
+ networkInterfaces = lib.lists.singleton "eno1";
+ servicesToCheck = [
+ "blocky"
+ "searx"
+ ];
+ };
+}
diff --git a/hosts/raindog/hardware.nix b/hosts/raindog/hardware.nix
new file mode 100644
index 0000000..b2a5571
--- /dev/null
+++ b/hosts/raindog/hardware.nix
@@ -0,0 +1,38 @@
+# 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" "ehci_pci" "ahci" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/d62103eb-e154-4b71-b813-54ca76815a80";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/5972-1878";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
+
+ swapDevices = [ ];
+
+ # 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.eno1.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/hosts/sparrow/default.nix b/hosts/sparrow/default.nix
new file mode 100644
index 0000000..824f5df
--- /dev/null
+++ b/hosts/sparrow/default.nix
@@ -0,0 +1,43 @@
+{ inputs, pkgs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = false;
+ };
+ };
+
+ networking = {
+ hostName = "sparrow";
+ networkmanager.enable = true;
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+ binfmt.emulatedSystems = [ "aarch64-linux" "riscv64-linux" ];
+ };
+
+ # Since I don't always carry my split keyboard, remap CAPS to left CTRL.
+ console.useXkbConfig = true;
+ services = {
+ xserver.xkb.options = "ctrl:swapcaps";
+ libinput.enable = true;
+ };
+
+ environment.systemPackages = with pkgs; [
+ acpi
+ unstable.qbittorrent
+ ];
+}
diff --git a/hosts/sparrow/hardware.nix b/hosts/sparrow/hardware.nix
new file mode 100644
index 0000000..d40b232
--- /dev/null
+++ b/hosts/sparrow/hardware.nix
@@ -0,0 +1,41 @@
+# 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" "usb_storage" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/d296f7a3-68d2-406f-963d-8ec39ab0ea64";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/B159-723B";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
+
+ swapDevices = [{
+ device = "/.swapfile";
+ }];
+
+ # 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.enp0s31f6.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp59s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/hosts/woodpecker/default.nix b/hosts/woodpecker/default.nix
new file mode 100644
index 0000000..4f1dc2f
--- /dev/null
+++ b/hosts/woodpecker/default.nix
@@ -0,0 +1,39 @@
+{ inputs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = false;
+ };
+ };
+
+ networking = {
+ hostName = "woodpecker";
+ nameservers = [ "10.44.0.1" ];
+ defaultGateway.address = "10.44.0.1";
+ interfaces.enp42s0 = {
+ useDHCP = false;
+ ipv4.addresses = [{
+ address = "10.44.4.50";
+ prefixLength = 16;
+ }];
+ };
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+ binfmt.emulatedSystems = [ "aarch64-linux" "riscv64-linux" ];
+ };
+}
diff --git a/hosts/woodpecker/hardware.nix b/hosts/woodpecker/hardware.nix
new file mode 100644
index 0000000..3fc71e9
--- /dev/null
+++ b/hosts/woodpecker/hardware.nix
@@ -0,0 +1,44 @@
+# 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 = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/90ec7fc1-192e-4bb5-9bb5-5e2776435f8d";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/3A26-C3FB";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
+
+ fileSystems."/home" =
+ { device = "/dev/disk/by-uuid/cd7e081e-cd0b-4dc5-b41c-8dda26437a78";
+ fsType = "ext4";
+ };
+
+ swapDevices = [ ];
+
+ # 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.enp42s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}