From a86bd1a7f487297958ac9ec3e38285ec014f96bf Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Thu, 2 Jul 2026 13:40:14 +0200 Subject: feat(adam): setup secure boot with lanzaboote --- flake.lock | 157 +++++++++++++++++++++++++++++++---- flake.nix | 3 + modules/hosts/adam/configuration.nix | 10 ++- modules/hosts/adam/flake-parts.nix | 8 +- 4 files changed, 153 insertions(+), 25 deletions(-) diff --git a/flake.lock b/flake.lock index 4351c76..8146711 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,20 @@ { "nodes": { + "crane": { + "locked": { + "lastModified": 1781825982, + "narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=", + "owner": "ipetkov", + "repo": "crane", + "rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "firefox-addons": { "inputs": { "nixpkgs": [ @@ -8,11 +23,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1782619356, - "narHash": "sha256-sde3f0uM5mEUwl6Bxom69P+9KOdpJ9YnSj0umSB2qdQ=", + "lastModified": 1782964936, + "narHash": "sha256-wXEBDr7/dFQYhVpDwCKc9fkrYQQE4x0bdirX1bsLBGA=", "owner": "rycee", "repo": "nur-expressions", - "rev": "9ad2019bb522c7eeecd9e3e2d18dd681f697f4d0", + "rev": "64feee871e0373dd6121e412c3fb12e372d1bfb5", "type": "gitlab" }, "original": { @@ -22,16 +37,32 @@ "type": "gitlab" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1778716662, - "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "lastModified": 1782949081, + "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", "type": "github" }, "original": { @@ -40,6 +71,28 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "pre-commit", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -47,11 +100,11 @@ ] }, "locked": { - "lastModified": 1782522538, - "narHash": "sha256-CvOaUvJ+mXlxU3m2cPWKcOAhtKETsPUYhq+Xa5ewBp4=", + "lastModified": 1782964450, + "narHash": "sha256-2rwNd77TzZ4sDDvMam0IXFXN5IfC35mifoeKS0uAc/4=", "owner": "nix-community", "repo": "home-manager", - "rev": "8d8a6cc50ddc60748791a14ee1163c865ec57635", + "rev": "ebc87daabc8d3f595e9a8b67107eaaa8115ad582", "type": "github" }, "original": { @@ -75,6 +128,29 @@ "type": "github" } }, + "lanzaboote": { + "inputs": { + "crane": "crane", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit": "pre-commit", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1782160136, + "narHash": "sha256-APwmLI4UuSTim0JO/kZ6FXDPiZVp3zIj0uGDF2UZ5kU=", + "owner": "nix-community", + "repo": "lanzaboote", + "rev": "6650fb7c6b48177c8200e21ffac99a4adc72b08d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lanzaboote", + "type": "github" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -97,11 +173,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1782175435, - "narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=", + "lastModified": 1782918843, + "narHash": "sha256-ETYnV9U7Sr+A45dohzZdfCZKOss4qrTkO+wgNZNvEc0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "89570f24e97e614aa34aa9ab1c927b6578a43775", + "rev": "e8273b29fe1390ec8d4603f2477357555291432e", "type": "github" }, "original": { @@ -113,11 +189,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1777168982, - "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=", + "lastModified": 1782614948, + "narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14", + "rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c", "type": "github" }, "original": { @@ -126,18 +202,63 @@ "type": "github" } }, + "pre-commit": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781733627, + "narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "firefox-addons": "firefox-addons", "flake-parts": "flake-parts", "home-manager": "home-manager", "import-tree": "import-tree", + "lanzaboote": "lanzaboote", "nix-darwin": "nix-darwin", "nixpkgs": "nixpkgs", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1782012058, + "narHash": "sha256-9mWUnReOUXfKjZuJAL/bAFH3LUyECTRtXgSNVjRw3UY=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "8534567325bd8a8d2928e6afd81e0a87d19efd3c", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -166,11 +287,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1782031037, - "narHash": "sha256-a7oWSyS7SN81UOqVt481yIEMDsMpaJ7GNdV6Eaz5Yqg=", + "lastModified": 1782898510, + "narHash": "sha256-7QVN7ijsXbIBRrI9LdXfeoFktTS0I6HZya9tu6+STrs=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "9cb27462cfd20edac174353f1e95bc03aa888863", + "rev": "9cabea6f5973ec01f60080ea50f54f8f6d74dc95", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ac0f352..a19bd09 100644 --- a/flake.nix +++ b/flake.nix @@ -21,6 +21,9 @@ firefox-addons.url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; firefox-addons.inputs.nixpkgs.follows = "nixpkgs"; + + lanzaboote.url = "github:nix-community/lanzaboote"; + lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); diff --git a/modules/hosts/adam/configuration.nix b/modules/hosts/adam/configuration.nix index 8e134f2..85a352f 100644 --- a/modules/hosts/adam/configuration.nix +++ b/modules/hosts/adam/configuration.nix @@ -11,9 +11,13 @@ kernelModules = [ "amdgpu" ]; loader = { timeout = 0; - systemd-boot.enable = true; + systemd-boot.enable = pkgs.lib.mkForce false; efi.canTouchEfiVariables = true; }; + lanzaboote = { + enable = true; + pkiBundle = "/var/lib/sbctl"; + }; }; # Disable waiting for network to be online @@ -38,6 +42,10 @@ ]; }; + environment.systemPackages = [ + pkgs.sbctl + ]; + nix.settings.experimental-features = [ "nix-command" "flakes" diff --git a/modules/hosts/adam/flake-parts.nix b/modules/hosts/adam/flake-parts.nix index aa6d8b9..800ca80 100644 --- a/modules/hosts/adam/flake-parts.nix +++ b/modules/hosts/adam/flake-parts.nix @@ -3,12 +3,8 @@ flake.nixosConfigurations."adam" = inputs.nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = with inputs.self.modules.nixos; [ - { - nixpkgs.overlays = [ - inputs.self.overlays.ida-pro - inputs.self.overlays.ida-pro-mcp - ]; - } + inputs.self.modules.nixos.nixpkgs + inputs.lanzaboote.nixosModules.lanzaboote adam ida-pro home-manager -- cgit v1.3.1