From 0a5754541bb01e96021ca7ee74f1256a8ee68bc4 Mon Sep 17 00:00:00 2001 From: tdback Date: Sat, 21 Dec 2024 15:32:13 -0500 Subject: initial commit to self-hosted git --- hosts/eden/default.nix | 52 +++++++++++++++++++++++++++++++++++++++++++ hosts/eden/hardware.nix | 38 +++++++++++++++++++++++++++++++ hosts/hive/default.nix | 44 ++++++++++++++++++++++++++++++++++++ hosts/hive/hardware.nix | 39 ++++++++++++++++++++++++++++++++ hosts/oasis/default.nix | 51 ++++++++++++++++++++++++++++++++++++++++++ hosts/oasis/hardware.nix | 39 ++++++++++++++++++++++++++++++++ hosts/raindog/default.nix | 44 ++++++++++++++++++++++++++++++++++++ hosts/raindog/hardware.nix | 38 +++++++++++++++++++++++++++++++ hosts/sparrow/default.nix | 43 +++++++++++++++++++++++++++++++++++ hosts/sparrow/hardware.nix | 41 ++++++++++++++++++++++++++++++++++ hosts/woodpecker/default.nix | 39 ++++++++++++++++++++++++++++++++ hosts/woodpecker/hardware.nix | 44 ++++++++++++++++++++++++++++++++++++ 12 files changed, 512 insertions(+) create mode 100644 hosts/eden/default.nix create mode 100644 hosts/eden/hardware.nix create mode 100644 hosts/hive/default.nix create mode 100644 hosts/hive/hardware.nix create mode 100644 hosts/oasis/default.nix create mode 100644 hosts/oasis/hardware.nix create mode 100644 hosts/raindog/default.nix create mode 100644 hosts/raindog/hardware.nix create mode 100644 hosts/sparrow/default.nix create mode 100644 hosts/sparrow/hardware.nix create mode 100644 hosts/woodpecker/default.nix create mode 100644 hosts/woodpecker/hardware.nix (limited to 'hosts') 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..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..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..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..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..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..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; +} -- cgit v1.2.3