Commit 1a8e0e85ef12

Vincent Demeester <vincent@sbr.pm>
2025-07-17 11:13:34
systems: add nagoya and rpi5
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent af57d0d
lib/default.nix
@@ -78,7 +78,62 @@
         self.nixosModules.gosmee
         inputs.agenix.nixosModules.default
         inputs.lanzaboote.nixosModules.lanzaboote
-        inputs.vscode-server.nixosModules.default
+        homeInput.nixosModules.home-manager
+        { home-manager.extraSpecialArgs = specialArgs; }
+        ../systems
+      ];
+    };
+
+  # Function for generating host configs
+  mkRPIHost =
+    {
+      hostname,
+      desktop ? null,
+      hardwareType ? "",
+      pkgsInput ? inputs.nixpkgs-25_05,
+      homeInput ? inputs.home-manager-25_05,
+      nixos-raspberrypi ? inputs.nixos-raspberrypi,
+    }:
+    let
+      system = "aarch64-linux";
+      globals = import ../globals.nix {
+        inherit (pkgsInput) lib;
+        inherit hostname;
+      };
+      specialArgs = {
+        inherit
+          self
+          inputs
+          outputs
+          stateVersion
+          hostname
+          desktop
+          hardwareType
+          system
+          globals
+          nixos-raspberrypi
+          ;
+      };
+    in
+    inputs.nixos-raspberrypi.lib.nixosSystemFull {
+      inherit specialArgs;
+      inherit system;
+      modules = [
+        (
+          { ... }:
+          {
+            imports = with inputs.nixos-raspberrypi.nixosModules; [
+              raspberry-pi-5.base
+              raspberry-pi-5.bluetooth
+            ];
+          }
+        )
+        self.nixosModules.wireguard-client
+        self.nixosModules.wireguard-server
+        self.nixosModules.govanityurl
+        self.nixosModules.gosmee
+        inputs.agenix.nixosModules.default
+        inputs.lanzaboote.nixosModules.lanzaboote
         homeInput.nixosModules.home-manager
         { home-manager.extraSpecialArgs = specialArgs; }
         ../systems
systems/nagoya/boot.nix
@@ -0,0 +1,15 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+{
+  boot = {
+    loader = {
+      systemd-boot.enable = lib.mkForce false;
+    };
+  };
+  # nothing ?
+  # system.build.installBootLoader = config.boot.loader.raspberryPi;
+}
systems/nagoya/hardware.nix
@@ -0,0 +1,19 @@
+_: {
+  fileSystems = {
+    "/boot/firmware" = {
+      device = "/dev/disk/by-uuid/2175-794E";
+      fsType = "vfat";
+      options = [
+        "noatime"
+        "noauto"
+        "x-systemd.automount"
+        "x-systemd.idle-timeout=1min"
+      ];
+    };
+    "/" = {
+      device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
+      fsType = "ext4";
+      options = [ "noatime" ];
+    };
+  };
+}
systems/default.nix
@@ -88,6 +88,7 @@
         "https://shortbrain.cachix.org"
         "https://vdemeester.cachix.org"
         "https://chapeau-rouge.cachix.org"
+        "https://nixos-raspberrypi.cachix.org"
       ];
       trusted-public-keys = [
         "r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c="
@@ -95,6 +96,7 @@
         "mic92.cachix.org-1:gi8IhgiT3CYZnJsaW7fxznzTkMUOn1RY4GmXdT/nXYQ="
         "chapeau-rouge.cachix.org-1:r34IG766Ez4Eeanr7Zx+egzXLE2Zgvc+XRspYZPDAn8="
         "vdemeester.cachix.org-1:eZWNOrLR9A9szeMahn9ENaoT9DB3WgOos8va+d2CU44="
+        "nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
       ];
     };
 
flake.nix
@@ -1,6 +1,15 @@
 {
   description = "System Config";
 
+  nixConfig = {
+    extra-substituters = [
+      "https://nixos-raspberrypi.cachix.org"
+    ];
+    extra-trusted-public-keys = [
+      "nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
+    ];
+  };
+
   outputs =
     { self, ... }@inputs:
     let
@@ -81,6 +90,10 @@
           pkgsInput = inputs.nixpkgs-25_05;
           homeInput = inputs.home-manager-25_05;
         };
+        nagoya = libx.mkRPIHost {
+          hostname = "nagoya";
+          # hardwareType = "rpi4";
+        };
         sakhalin = libx.mkHost {
           hostname = "sakhalin";
           pkgsInput = inputs.nixpkgs-25_05;
@@ -303,5 +316,6 @@
     nix-github-actions.inputs.nixpkgs.follows = "nixpkgs";
 
     vscode-server.url = "github:nix-community/nixos-vscode-server";
+    nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
   };
 }