diff --git a/flake.lock b/flake.lock index 1c8001c7..35a0bbc8 100644 --- a/flake.lock +++ b/flake.lock @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1734088167, - "narHash": "sha256-OIitVU+IstPbX/NWn2jLF+/sT9dVKcO2FKeRAzlyX6c=", + "lastModified": 1734343412, + "narHash": "sha256-b7G8oFp0Nj01BYUJ6ENC9Qf/HsYAIZvN9k/p0Kg/PFU=", "owner": "nix-community", "repo": "disko", - "rev": "d32f2d1750d61a476a236526b725ec5a32e16342", + "rev": "a08bfe06b39e94eec98dd089a2c1b18af01fef19", "type": "github" }, "original": { @@ -477,11 +477,11 @@ ] }, "locked": { - "lastModified": 1733951536, - "narHash": "sha256-Zb5ZCa7Xj+0gy5XVXINTSr71fCfAv+IKtmIXNrykT54=", + "lastModified": 1734366194, + "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", "owner": "nix-community", "repo": "home-manager", - "rev": "1318c3f3b068cdcea922fa7c1a0a1f0c96c22f5f", + "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", "type": "github" }, "original": { @@ -634,11 +634,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1733660018, - "narHash": "sha256-DHW2Hzyo8W6wVPGFaYLM9mKMH/qAtHJSUZ4ti7LHMCY=", + "lastModified": 1734264809, + "narHash": "sha256-94fu5E0gM8aMY0bX/ix7BWGf/e/OfGjoCtNrJfwL0dM=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "f710791be27b31ea1ee9c40a94d08bcbba99b3c0", + "rev": "46bedda9e45f2735f41ec3c01cba2b8ce7ba9808", "type": "github" }, "original": { @@ -735,11 +735,11 @@ }, "nixlib": { "locked": { - "lastModified": 1733620091, - "narHash": "sha256-5WoMeCkaXqTZwwCNLRzyLxEJn8ISwjx4cNqLgqKwg9s=", + "lastModified": 1734224914, + "narHash": "sha256-hKWALzQ/RxxXdKWsLKXULru6XTag9Cc5exgVyS4a/AE=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "f4dc9a6c02e5e14d91d158522f69f6ab4194eb5b", + "rev": "538697b664a64fade8ce628d01f35d1f1fd82d77", "type": "github" }, "original": { @@ -756,11 +756,11 @@ ] }, "locked": { - "lastModified": 1733965598, - "narHash": "sha256-0tlZU8xfQGPcBOdXZee7P3vJLyPjTrXw7WbIgXD34gM=", + "lastModified": 1734311693, + "narHash": "sha256-ODRrnbaUsOe3e4kp+uHl+iJxey5zE3kqiBqJWQxrlnY=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "d162ffdf0a30f3d19e67df5091d6744ab8b9229f", + "rev": "a5278f7c326205681f1f42a90fa46a75a13627eb", "type": "github" }, "original": { @@ -771,11 +771,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1733861262, - "narHash": "sha256-+jjPup/ByS0LEVIrBbt7FnGugJgLeG9oc+ivFASYn2U=", + "lastModified": 1734352517, + "narHash": "sha256-mfv+J/vO4nqmIOlq8Y1rRW8hVsGH3M+I2ESMjhuebDs=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "cf737e2eba82b603f54f71b10cb8fd09d22ce3f5", + "rev": "b12e314726a4226298fe82776b4baeaa7bcf3dcd", "type": "github" }, "original": { @@ -803,11 +803,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1733620091, - "narHash": "sha256-5WoMeCkaXqTZwwCNLRzyLxEJn8ISwjx4cNqLgqKwg9s=", + "lastModified": 1734224914, + "narHash": "sha256-hKWALzQ/RxxXdKWsLKXULru6XTag9Cc5exgVyS4a/AE=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "f4dc9a6c02e5e14d91d158522f69f6ab4194eb5b", + "rev": "538697b664a64fade8ce628d01f35d1f1fd82d77", "type": "github" }, "original": { @@ -834,11 +834,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1733940404, - "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", + "lastModified": 1734119587, + "narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", + "rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5", "type": "github" }, "original": { @@ -855,11 +855,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1734197657, - "narHash": "sha256-u0hguP7NiAXP0q2WRBK5f1CoWu1aW7nrizwk1UI2s7E=", + "lastModified": 1734366874, + "narHash": "sha256-DBB1cTb+gmjUpcR3Ki+qQbdQsHwBjW7FB7iOp39WF0g=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "7151b502f3889772ab98bae273de4f293bdf5dc1", + "rev": "7c76738f71e0d4a0365ad95ab3a09e236a655f30", "type": "github" }, "original": { @@ -901,11 +901,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1733940404, - "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", + "lastModified": 1734119587, + "narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", + "rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5", "type": "github" }, "original": { @@ -933,11 +933,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1733940404, - "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", + "lastModified": 1734119587, + "narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", + "rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5", "type": "github" }, "original": { @@ -997,11 +997,11 @@ "treefmt-nix": "treefmt-nix_3" }, "locked": { - "lastModified": 1734221225, - "narHash": "sha256-PQtNGbg3B93+MINMe4/mwYWZkVDNzaf+O2Hw7xDznNk=", + "lastModified": 1734366989, + "narHash": "sha256-Vkt9F2lBT464qRc0QALpktgSkuvDGfEPpMR9gsVg2rA=", "owner": "nix-community", "repo": "NUR", - "rev": "12bcdb7c86a2598761a7e2ada1b1e6cd7542197c", + "rev": "3e5068d3b206b5618394785690ecc0efff7942d5", "type": "github" }, "original": { diff --git a/nixos/common/modules/raspberry-pi-4.nix b/nixos/common/modules/raspberry-pi-4.nix new file mode 100644 index 00000000..73c707c0 --- /dev/null +++ b/nixos/common/modules/raspberry-pi-4.nix @@ -0,0 +1,42 @@ +{pkgs, lib, inputs, modulesPath, ...}: { + # Enable distributed Builds + nix.distributedBuilds = true; + imports = [ + inputs.nixos-hardware.nixosModules.raspberry-pi-4 + (modulesPath + "/installer/scan/not-detected.nix") + ]; + console.enable = true; + environment.systemPackages = with pkgs; [ + libraspberrypi + raspberrypi-eeprom + ]; + boot = { + initrd.availableKernelModules = [ + "xhci_pci" + "usbhid" + "usb_storage" + "vc4" + "pcie_brcmstb" # required for the pcie bus to work + "reset-raspberrypi" # required for vl805 firmware to load + ]; + # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) + loader.grub.enable = false; + # Enables the generation of /boot/extlinux/extlinux.conf + loader.generic-extlinux-compatible.enable = true; + + initrd.kernelModules = [ ]; + kernelModules = [ ]; + extraModulePackages = [ ]; + }; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; + fsType = "ext4"; + }; + + hardware.enableRedistributableFirmware = true; + + swapDevices = [ ]; + networking.useDHCP = lib.mkDefault true; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; +} diff --git a/nixos/hosts/backups-rpi4/default.nix b/nixos/hosts/backups-rpi4/default.nix index 99bfc418..9004b2e0 100644 --- a/nixos/hosts/backups-rpi4/default.nix +++ b/nixos/hosts/backups-rpi4/default.nix @@ -1,58 +1,14 @@ -{ inputs, config, lib, pkgs, modulesPath, hostname, ... }: { +{ ... }: { imports = [ - inputs.nixos-hardware.nixosModules.raspberry-pi-4 - (modulesPath + "/installer/scan/not-detected.nix") ../../common/services/tailscale-autoconnect.nix + ../../common/modules/raspberry-pi-4.nix ./backup-script.nix ./cron.nix ./wireguard.nix ]; - # Enable distributed Builds - nix.distributedBuilds = true; - - hardware = { - raspberry-pi."4".apply-overlays-dtmerge.enable = true; - deviceTree = { - enable = true; - filter = "*rpi-4-*.dtb"; - }; - }; - console.enable = true; - environment.systemPackages = with pkgs; [ - libraspberrypi - raspberrypi-eeprom - ]; - # Set your time zone. time.timeZone = "Europe/Warsaw"; - - ##################################################################################### - # BEGIN hardware config - ##################################################################################### - - # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) - boot.loader.grub.enable = false; - # Enables the generation of /boot/extlinux/extlinux.conf - boot.loader.generic-extlinux-compatible.enable = true; - - boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; - - swapDevices = [ ]; - networking.useDHCP = lib.mkDefault true; - powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; networking.hostName = "backups-rpi4"; - ##################################################################################### - # END hardware config - ##################################################################################### - services.tailscale.extraUpFlags = [ "--advertise-exit-node" ]; boot.kernel.sysctl = { "net.ipv4.ip_forward" = true; }; } diff --git a/nixos/hosts/bakersfield-rpi4/default.nix b/nixos/hosts/bakersfield-rpi4/default.nix index 4027f98c..999e644e 100644 --- a/nixos/hosts/bakersfield-rpi4/default.nix +++ b/nixos/hosts/bakersfield-rpi4/default.nix @@ -1,58 +1,11 @@ -{ lib, pkgs, modulesPath, ... }: { +{ ... }: { imports = [ - # inputs.nixos-hardware.nixosModules.raspberry-pi-4 - (modulesPath + "/installer/scan/not-detected.nix") ../../common/services/tailscale-autoconnect.nix + ../../common/modules/raspberry-pi-4.nix ]; - # Enable distributed Builds - nix.distributedBuilds = true; - - console.enable = true; - environment.systemPackages = with pkgs; [ - libraspberrypi - raspberrypi-eeprom - ]; - - # Set your time zone. + time.timeZone = "America/Los_Angeles"; - - ##################################################################################### - # BEGIN hardware config - ##################################################################################### - boot = { - initrd.availableKernelModules = [ - "xhci_pci" - "usbhid" - "usb_storage" - "vc4" - "pcie_brcmstb" # required for the pcie bus to work - "reset-raspberrypi" # required for vl805 firmware to load - ]; - # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) - loader.grub.enable = false; - # Enables the generation of /boot/extlinux/extlinux.conf - loader.generic-extlinux-compatible.enable = true; - - initrd.kernelModules = [ ]; - kernelModules = [ ]; - extraModulePackages = [ ]; - }; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; - - hardware.enableRedistributableFirmware = true; - - swapDevices = [ ]; - networking.useDHCP = lib.mkDefault true; - powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; networking.hostName = "bakersfield-rpi4"; - ##################################################################################### - # END hardware config - ##################################################################################### - services.tailscale.extraUpFlags = [ "--advertise-exit-node" ]; boot.kernel.sysctl = { "net.ipv4.ip_forward" = true; }; } diff --git a/nixos/hosts/piaware-rpi4/default.nix b/nixos/hosts/piaware-rpi4/default.nix index 36f28472..1c2312c8 100644 --- a/nixos/hosts/piaware-rpi4/default.nix +++ b/nixos/hosts/piaware-rpi4/default.nix @@ -1,60 +1,13 @@ -{ lib, pkgs, modulesPath, ... }: { +{ ... }: { imports = [ - # inputs.nixos-hardware.nixosModules.raspberry-pi-4 - (modulesPath + "/installer/scan/not-detected.nix") ../../common/services/tailscale-autoconnect.nix ../../common/services/podman.nix + ../../common/modules/raspberry-pi-4.nix ./containers/piaware.nix ]; - # Enable distributed Builds - nix.distributedBuilds = true; - console.enable = true; - environment.systemPackages = with pkgs; [ - libraspberrypi - raspberrypi-eeprom - ]; - - # Set your time zone. time.timeZone = "Europe/Warsaw"; - - ##################################################################################### - # BEGIN hardware config - ##################################################################################### - boot = { - initrd.availableKernelModules = [ - "xhci_pci" - "usbhid" - "usb_storage" - "vc4" - "pcie_brcmstb" # required for the pcie bus to work - "reset-raspberrypi" # required for vl805 firmware to load - ]; - # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) - loader.grub.enable = false; - # Enables the generation of /boot/extlinux/extlinux.conf - loader.generic-extlinux-compatible.enable = true; - - initrd.kernelModules = [ ]; - kernelModules = [ ]; - extraModulePackages = [ ]; - }; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; - - hardware.enableRedistributableFirmware = true; - - swapDevices = [ ]; - networking.useDHCP = lib.mkDefault true; - powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; networking.hostName = "piaware-rpi4"; - ##################################################################################### - # END hardware config - ##################################################################################### - services.tailscale.extraUpFlags = [ "--advertise-exit-node" ]; boot.kernel.sysctl = { "net.ipv4.ip_forward" = true; }; } diff --git a/nixos/hosts/quitman-rpi4/default.nix b/nixos/hosts/quitman-rpi4/default.nix index 750553ac..683341ad 100644 --- a/nixos/hosts/quitman-rpi4/default.nix +++ b/nixos/hosts/quitman-rpi4/default.nix @@ -1,58 +1,11 @@ -{ inputs, lib, pkgs, modulesPath, ... }: { +{ ... }: { imports = [ - inputs.nixos-hardware.nixosModules.raspberry-pi-4 - (modulesPath + "/installer/scan/not-detected.nix") ../../common/services/tailscale-autoconnect.nix - ]; - # Enable distributed Builds - nix.distributedBuilds = true; - - console.enable = true; - environment.systemPackages = with pkgs; [ - libraspberrypi - raspberrypi-eeprom + ../../common/modules/raspberry-pi-4.nix ]; - # Set your time zone. time.timeZone = "America/Chicago"; - - ##################################################################################### - # BEGIN hardware config - ##################################################################################### - boot = { - initrd.availableKernelModules = [ - "xhci_pci" - "usbhid" - "usb_storage" - "vc4" - "pcie_brcmstb" # required for the pcie bus to work - "reset-raspberrypi" # required for vl805 firmware to load - ]; - # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) - loader.grub.enable = false; - # Enables the generation of /boot/extlinux/extlinux.conf - loader.generic-extlinux-compatible.enable = true; - - initrd.kernelModules = [ ]; - kernelModules = [ ]; - extraModulePackages = [ ]; - }; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; - - hardware.enableRedistributableFirmware = true; - - swapDevices = [ ]; - networking.useDHCP = lib.mkDefault true; - powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; networking.hostName = "quitman-rpi4"; - ##################################################################################### - # END hardware config - ##################################################################################### - services.tailscale.extraUpFlags = [ "--advertise-exit-node" "--advertise-routes=192.168.68.0/22"