diff --git a/flake.lock b/flake.lock index 04623b5d..a1482b97 100644 --- a/flake.lock +++ b/flake.lock @@ -163,19 +163,44 @@ "type": "github" } }, + "cachix": { + "inputs": { + "devenv": "devenv_2", + "flake-compat": "flake-compat_3", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1710475558, + "narHash": "sha256-egKrPCKjy/cE+NqCj4hg2fNX/NwLCf0bRDInraYXDgs=", + "owner": "cachix", + "repo": "cachix", + "rev": "661bbb7f8b55722a0406456b15267b5426a3bda6", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "cachix", + "type": "github" + } + }, "capsules": { "inputs": { "bitte": "bitte", "iogo": "iogo", - "nixpkgs": "nixpkgs_13", + "nix-deployer": "nix-deployer", + "nixpkgs": "nixpkgs_14", "ragenix": "ragenix_2" }, "locked": { - "lastModified": 1671562644, - "narHash": "sha256-zEfdg/z8pSqCn0puxgvKxa9ie87c7DY6QCSsTxPd8k4=", + "lastModified": 1690399428, + "narHash": "sha256-ziGk2TcHyA7hYZiJflvt3O9cguEaARj6045zt7kv9Cg=", "owner": "input-output-hk", "repo": "devshell-capsules", - "rev": "6660a8b43f563df66e2375adb4e2a54cd8792d5f", + "rev": "4b0311abd0f9f0f614d260b64cf9a87a8f6dc250", "type": "github" }, "original": { @@ -213,21 +238,53 @@ }, "devenv": { "inputs": { - "flake-compat": "flake-compat_2", + "cachix": "cachix", + "flake-compat": "flake-compat_5", + "nix": "nix_5", + "nixpkgs": "nixpkgs_17", + "pre-commit-hooks": "pre-commit-hooks_2" + }, + "locked": { + "lastModified": 1711676035, + "narHash": "sha256-m8AHpQR0WVVEoWWOpXVNvqfB5cXiMRnHfcYYm2zg7tk=", + "owner": "cachix", + "repo": "devenv", + "rev": "19098329b4e79f60705d7fb241a3617266658f98", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv_2": { + "inputs": { + "flake-compat": [ + "devenv", + "cachix", + "flake-compat" + ], "nix": "nix_4", - "nixpkgs": "nixpkgs_15", - "pre-commit-hooks": "pre-commit-hooks" + "nixpkgs": "nixpkgs_16", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": [ + "devenv", + "cachix", + "pre-commit-hooks" + ] }, "locked": { - "lastModified": 1678256717, - "narHash": "sha256-qUJJEs0yQI3e43zFSwZymrMZjNCyTrTdvZM29v+F91A=", + "lastModified": 1708704632, + "narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=", "owner": "cachix", "repo": "devenv", - "rev": "ca23892d8b9f788be8d1d358c673c8d0f9b4f68f", + "rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196", "type": "github" }, "original": { "owner": "cachix", + "ref": "python-rewrite", "repo": "devenv", "type": "github" } @@ -277,6 +334,24 @@ "type": "github" } }, + "disko": { + "inputs": { + "nixpkgs": "nixpkgs_18" + }, + "locked": { + "lastModified": 1711588700, + "narHash": "sha256-vBB5HoQVnA6c/UrDOhLXKAahEwSRccw2YXYHxD7qoi4=", + "owner": "nix-community", + "repo": "disko", + "rev": "502241afa3de2a24865ddcbe4c122f4546e32092", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "disko", + "type": "github" + } + }, "fenix": { "inputs": { "nixpkgs": "nixpkgs_3", @@ -351,16 +426,80 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1677714448, - "narHash": "sha256-Hq8qLs8xFu28aDjytfxjdC96bZ6pds21Yy09mSC156I=", + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "dc531e3a9ce757041e1afaff8ee932725ca60002", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", "type": "github" }, "original": { @@ -430,12 +569,51 @@ } }, "flake-utils_5": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "inputs": { + "systems": "systems_3" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -448,16 +626,39 @@ "inputs": { "nixpkgs": [ "devenv", + "cachix", "pre-commit-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "devenv", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", "type": "github" }, "original": { @@ -654,6 +855,51 @@ "type": "github" } }, + "nix-deployer": { + "inputs": { + "lowdown-src": "lowdown-src_4", + "nixpkgs": "nixpkgs_13", + "nixpkgs-regression": "nixpkgs-regression_3" + }, + "locked": { + "lastModified": 1682676126, + "narHash": "sha256-CEj8KOj9wN285+c2VWnJhDsSF6OqSvOA9eY/naAuGpQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "4504ee295738a2e7a1cb0a5d9cf94d03e861b5f5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.14-maintenance", + "repo": "nix", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "devenv", + "cachix", + "devenv", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688870561, + "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nix_2": { "inputs": { "lowdown-src": "lowdown-src_2", @@ -695,24 +941,50 @@ }, "nix_4": { "inputs": { - "lowdown-src": "lowdown-src_4", + "flake-compat": "flake-compat_2", "nixpkgs": [ + "devenv", + "cachix", "devenv", "nixpkgs" ], - "nixpkgs-regression": "nixpkgs-regression_3" + "nixpkgs-regression": "nixpkgs-regression_4" + }, + "locked": { + "lastModified": 1708577783, + "narHash": "sha256-92xq7eXlxIT5zFNccLpjiP7sdQqQI30Gyui2p/PfKZM=", + "owner": "domenkozar", + "repo": "nix", + "rev": "ecd0af0c1f56de32cbad14daa1d82a132bf298f8", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.21", + "repo": "nix", + "type": "github" + } + }, + "nix_5": { + "inputs": { + "flake-compat": "flake-compat_6", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression_5" }, "locked": { - "lastModified": 1676545802, - "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=", + "lastModified": 1710500156, + "narHash": "sha256-zvCqeUO2GLOm7jnU23G4EzTZR7eylcJN+HJ5svjmubI=", "owner": "domenkozar", "repo": "nix", - "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f", + "rev": "c5bbf14ecbd692eeabf4184cc8d50f79c2446549", "type": "github" }, "original": { "owner": "domenkozar", - "ref": "relaxed-flakes", + "ref": "devenv-2.21", "repo": "nix", "type": "github" } @@ -734,11 +1006,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1677407201, - "narHash": "sha256-3blwdI9o1BAprkvlByHvtEm5HAIRn/XPjtcfiunpY7s=", + "lastModified": 1709237383, + "narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7f5639fa3b68054ca0b062866dc62b22c3f11505", + "rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", "type": "github" }, "original": { @@ -795,18 +1067,66 @@ "type": "github" } }, + "nixpkgs-regression_4": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs-regression_5": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { - "lastModified": 1673800717, - "narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=", + "lastModified": 1704874635, + "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f", + "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1704874635, + "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } @@ -877,11 +1197,27 @@ }, "nixpkgs_13": { "locked": { - "lastModified": 1658119717, - "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", + "lastModified": 1670461440, + "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "04a75b2eecc0acf6239acf9dd04485ff8d14f425", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_14": { + "locked": { + "lastModified": 1684212024, + "narHash": "sha256-/3ZvkPuIXdyZqPR53qC7aaV5wiwMOY+ddbESOykZ9Vo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9eb60f25aff0d2218c848dd4574a0ab5e296cabe", + "rev": "d4825e5e4ac1de7d5bb99381534fd0af3875a26d", "type": "github" }, "original": { @@ -891,7 +1227,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_15": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -907,13 +1243,13 @@ "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_16": { "locked": { - "lastModified": 1677534593, - "narHash": "sha256-PuZSAHeq4/9pP/uYH1FcagQ3nLm/DrDrvKi/xC9glvw=", + "lastModified": 1692808169, + "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3ad64d9e2d5bf80c877286102355b1625891ae9a", + "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", "type": "github" }, "original": { @@ -923,18 +1259,52 @@ "type": "github" } }, - "nixpkgs_16": { + "nixpkgs_17": { "locked": { - "lastModified": 1678268259, - "narHash": "sha256-q+ZWNJfXKgIKwsZBir0yXrmIV/4tOv5BflxDAfGISps=", + "lastModified": 1710236354, + "narHash": "sha256-vWrciFdq49vve43g4pbi7NjmL4cwG1ifXnQx+dU3T5E=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "829e73affeadfb4198a7105cbe3a03153d13edc9", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_18": { + "locked": { + "lastModified": 1711401922, + "narHash": "sha256-QoQqXoj8ClGo0sqD/qWKFWezgEwUL0SUh37/vY2jNhc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "90ef5c3c337d8d9f0c97e7641ece70a41f6c16a2", + "rev": "07262b18b97000d16a4bdb003418bd2fb067a932", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_19": { + "locked": { + "lastModified": 1715177952, + "narHash": "sha256-2oY84E/ZVBCvs3odpixb0nFu77TDUtS9XDfileqgqzM=", + "owner": "input-output-hk", + "repo": "nixpkgs", + "rev": "3afa40cb1fdd201efa6f80c8f9debc771d8c3b3c", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "node-16-GHA-revert", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_2": { @@ -1142,26 +1512,77 @@ "type": "github" } }, + "poetry2nix": { + "inputs": { + "flake-utils": "flake-utils_5", + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "devenv", + "cachix", + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692876271, + "narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_6", + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "cachix", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { "inputs": { "flake-compat": [ "devenv", "flake-compat" ], - "flake-utils": "flake-utils_5", - "gitignore": "gitignore", + "flake-utils": "flake-utils_7", + "gitignore": "gitignore_2", "nixpkgs": [ "devenv", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1677160285, - "narHash": "sha256-tBzpCjMP+P3Y3nKLYvdBkXBg3KvTMo3gvi8tLQaqXVY=", + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "2bd861ab81469428d9c823ef72c4bb08372dd2c4", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", "type": "github" }, "original": { @@ -1195,7 +1616,7 @@ "inputs": { "agenix": "agenix_3", "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_14", + "nixpkgs": "nixpkgs_15", "rust-overlay": "rust-overlay_2" }, "locked": { @@ -1216,8 +1637,9 @@ "inputs": { "capsules": "capsules", "devenv": "devenv", + "disko": "disko", "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_16" + "nixpkgs": "nixpkgs_19" } }, "rust-analyzer-src": { @@ -1355,6 +1777,51 @@ "type": "github" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "terranix": { "inputs": { "bats-assert": "bats-assert", diff --git a/flake.nix b/flake.nix index 2deee68e..680ab58e 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,8 @@ flake-parts.url = "github:hercules-ci/flake-parts"; capsules.url = "github:input-output-hk/devshell-capsules"; devenv.url = "github:cachix/devenv"; + disko.url = "github:nix-community/disko"; + nixpkgs.url = "github:input-output-hk/nixpkgs/node-16-GHA-revert"; }; outputs = inputs@{ self, flake-parts, devenv, capsules, nixpkgs, ... }: flake-parts.lib.mkFlake { inherit inputs; } { @@ -14,6 +16,76 @@ # Raw flake outputs (generally not system-dependent) flake = { devenvModules = import ./devenvModules; + nixosConfigurations.plutus-bench = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + ./nixos/ax41-nvme.nix + { + system.stateVersion = "23.05"; + hetzner-dedicated.nic = { + ipv4 = "65.108.236.230"; + netmask4 = 26; + gateway4 = "65.108.236.193"; + ipv6 = "2a01:4f9:1a:b0de::2"; + netmask6 = 64; + mac = "a8:a1:59:a2:95:40"; + }; + users.users.root.openssh.authorizedKeys.keys = + [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID/fJqgjwPG7b5SRPtCovFmtjmAksUSNg3xHWyqBM4Cs shlevy@shlevy-laptop" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDbXkgUEf6TLnEWXwc5wjxhr45wKHJFEVIWIkz9E9ZrnZ4BfH6rI4+tiWn6QihpXnS7zwPqWgCaeLkWzHXwqFmHPzFv1PNVYT1BcuddRFceWcTNXxwJ2JTDXtadH5F/ZyDI2SRsbPfGa1iLca/ANUOQVb4yI3PSALD4BPd5G19mf/8HTZGL0wnYbq9JG7FHKG/8UheuoLf4En6Dk65JLTKvhdnASV5uMJOqmNaI3Q5v6YjVNokPLOqal/PN9/ERJ+jQIB65fFdSV4U55/jHFne1CdtEae77Qymi9JoLg1L4gbS9Dgmu09Asv4FB+jH4HQRUIkCKQig6Blp/HVrAPWVud2IgULgEqw/l07BBVThWbdmxd32YtAkhveNX6FHQO3Fhjk1J2wAXpOgZFVBiRbaCP9PyZe5yKK7crajnIAIzzOUv+SrHLvUN06wrAqUxCNJ8tnb/VZI0m2DXblKXfMxAQ/yoyjD8OlvlWz89MyPCiq4Ep9RbFWQw2YyW17JQp+U= renebarbosa@Renes-MacBook-Air.local" + "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHdILXJXPGYkjB8QbX246cRT9jLNZq0P8a9+r14Xm6pjX9r0Uj0o+b0zysZR+GcupwDZ9/GkGiKm5LfB9xgP48= shlevy@avp.shealevy.com" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGWEZvh2alpzkTFXCcIbCFu+EJ5ARP0GBqbwYlhzhKof" + ]; + networking.nameservers = [ "185.12.64.1" "185.12.64.2" "2a01:4ff:ff00::add:1" "2a01:4ff:ff00::add:2" ]; + powerManagement = { + cpuFreqGovernor = "userspace"; + cpufreq = { + min = 3600000; # 3.6 GHz + max = 4210000; # 4.2 GHz + }; + }; + } + ({ pkgs, lib, ... }: { + environment.systemPackages = [ + pkgs.git + pkgs.diffutils + ]; + # Remove when GHA removes upstream + nixpkgs.config.permittedInsecurePackages = [ + "nodejs-16.20.2" + ]; + + nix.settings = { + max-jobs = 12; + cores = 0; + sandbox = true; + substituters = lib.mkAfter [ "https://cache.iog.io" ]; + trusted-public-keys = [ + "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + ]; + trusted-users = [ "root" ]; + builders-use-substitutes = true; + experimental-features = [ "nix-command" "flakes" ]; + bash-prompt = ''\n\[\033[1;32m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w \[\033[01;31m\](dev-shell)\[\033[01;32m\]]\$ \[\033[0m\]''; + }; + services.github-runner = { + enable = true; + extraLabels = [ "plutus-benchmark" ]; + name = "plutus-benchmark"; + tokenFile = "/root/runner-pat"; + url = "https://github.com/IntersectMBO/plutus"; + nodeRuntimes = [ "node16" "node20" ]; + extraPackages = [ + pkgs.rsync + pkgs.diffutils + pkgs.wget + pkgs.curl + ]; + }; + }) + ]; + }; }; # Flake outputs that will be split by system perSystem = { config, pkgs, inputs', self', ... }: { diff --git a/nixos/ax41-nvme.nix b/nixos/ax41-nvme.nix new file mode 100644 index 00000000..a2dce16b --- /dev/null +++ b/nixos/ax41-nvme.nix @@ -0,0 +1,134 @@ +{ inputs, config, lib, ... }: let + inherit (lib) mkOption types; + + cfg = config.hetzner-dedicated.nic; +in assert (inputs ? disko); { + imports = [ inputs.disko.nixosModules.disko ]; + + options.hetzner-dedicated.nic = { + ipv4 = mkOption { + description = "The IPv4 address of the main NIC"; + type = types.str; + example = "65.108.236.230"; + }; + netmask4 = mkOption { + description = "The IPv4 netmask of the main NIC"; + type = types.int; + example = 26; + }; + gateway4 = mkOption { + description = "The IPv4 network gateway of the main NIC"; + type = types.str; + example = "65.108.236.193"; + }; + ipv6 = mkOption { + description = "The IPv6 address of the main NIC"; + type = types.str; + example = "2a01:4f9:1a:b0de::2"; + }; + netmask6 = mkOption { + description = "The IPv6 netmask of the main NIC"; + type = types.int; + example = 64; + }; + gateway6 = mkOption { + description = "The IPv6 network gateway of the main NIC"; + type = types.str; + default = "fe80::1"; + }; + mac = mkOption { + description = "The MAC address of the main NIC"; + type = types.str; + example = "a8:a1:59:a2:95:40"; + }; + }; + + config = { + boot = { + initrd.availableKernelModules = [ "ahci" "nvme" "ext4" ]; + + kernelModules = [ "kvm-amd" ]; + + kernelParams = [ "amd_pstate.shared_mem=1" "amd_pstate=passive" ]; + + loader.grub = { + copyKernels = true; + devices = [ "/dev/disk/by-path/pci-0000:2c:00.0-nvme-1" ]; + enable = true; + fsIdentifier = "uuid"; + }; + }; + + disko.devices.disk = { + disk0 = { + device = "/dev/disk/by-path/pci-0000:2c:00.0-nvme-1"; + content = { + type = "table"; + format = "gpt"; + partitions = [ + { + name = "boot"; + start = "0"; + end = "1M"; + part-type = "primary"; + flags = [ "bios_grub" ]; + } + { + name = "root"; + start = "1M"; + end = "100%"; + fs-type = "ext4"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + } + ]; + }; + }; + disk1 = { + device = "/dev/disk/by-path/pci-0000:2d:00.0-nvme-1"; + content = { + type = "table"; + format = "gpt"; + partitions = [ + { + name = "nix"; + start = "0"; + end = "100%"; + fs-type = "ext4"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/nix"; + }; + } + ]; + }; + }; + }; + + systemd.network.links."10-main" = { + matchConfig.PermanentMACAddress = cfg.mac; + linkConfig.Name = "main"; + }; + + networking = { + interfaces.main = { + ipv4.addresses = [ { address = cfg.ipv4; prefixLength = cfg.netmask4; } ]; + + ipv6.addresses = [ { address = cfg.ipv6; prefixLength = cfg.netmask6; } ]; + }; + + defaultGateway = cfg.gateway4; + + defaultGateway6 = { + address = cfg.gateway6; + interface = "main"; + }; + }; + + services.openssh.enable = true; + }; +}