diff options
-rw-r--r-- | derivations/codex/default.nix | 63 | ||||
-rw-r--r-- | derivations/codex/flake.nix | 19 | ||||
-rw-r--r-- | derivations/gemini/default.nix | 103 | ||||
-rw-r--r-- | derivations/gemini/flake.nix | 20 | ||||
-rw-r--r-- | flake.lock | 1924 | ||||
-rw-r--r-- | hosts/cloud/packages.nix | 5 | ||||
-rw-r--r-- | hosts/cloud/span/configuration.nix | 3 | ||||
-rw-r--r-- | hosts/cloud/span/default.nix | 1 | ||||
-rw-r--r-- | hosts/cloud/span/flake.lock | 27 | ||||
-rw-r--r-- | hosts/cloud/span/flake.nix | 16 | ||||
-rw-r--r-- | hosts/cloud/span/mail.nix | 17 | ||||
-rw-r--r-- | hosts/cloud/span/nginx.nix | 2 | ||||
-rw-r--r-- | hosts/cloud/span/packages.nix | 47 | ||||
-rw-r--r-- | hosts/local/fw11/configuration.nix | 5 |
14 files changed, 220 insertions, 2032 deletions
diff --git a/derivations/codex/default.nix b/derivations/codex/default.nix new file mode 100644 index 0000000..5a0f366 --- /dev/null +++ b/derivations/codex/default.nix @@ -0,0 +1,63 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, + pkg-config, + openssl, + versionCheckHook, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "codex"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "openai"; + repo = "codex"; + rev = "f14b5adabf5db34864c44c1ffc6c566b018fe0cc"; + # tag = "rust-v${finalAttrs.version}"; + hash = "sha256-rRe0JFEO5ixxrZYDL8kxXDOH0n7lqabkXNNaSlNnQDg="; + }; + + sourceRoot = "${finalAttrs.src.name}/codex-rs"; + + useFetchCargoVendor = true; + cargoHash = "sha256-QIZ3V4NUo1VxJN3cwdQf3S0zwePnwdKKfch0jlIJacU="; + + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + openssl + ]; + + checkFlags = [ + "--skip=keeps_previous_response_id_between_tasks" # Requires network access + "--skip=retries_on_early_close" # Requires network access + ]; + + doInstallCheck = true; + nativeInstallCheckInputs = [versionCheckHook]; + + passthru = { + updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "^rust-v(\\d+\\.\\d+\\.\\d+)$" + ]; + }; + }; + + meta = { + description = "Lightweight coding agent that runs in your terminal"; + homepage = "https://github.com/openai/codex"; + changelog = "https://raw.githubusercontent.com/openai/codex/refs/tags/rust-v${finalAttrs.version}/CHANGELOG.md"; + license = lib.licenses.asl20; + mainProgram = "codex"; + maintainers = with lib.maintainers; [ + malo + delafthi + ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/derivations/codex/flake.nix b/derivations/codex/flake.nix new file mode 100644 index 0000000..3a0a46f --- /dev/null +++ b/derivations/codex/flake.nix @@ -0,0 +1,19 @@ +{ + description = "Gemini CLI flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = { + self, + nixpkgs, + }: let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + packages.${system}.default = pkgs.callPackage ./default.nix { + inherit (pkgs) lib buildNpmPackage fetchFromGitHub fetchNpmDeps gitUpdater; + }; + }; +} diff --git a/derivations/gemini/default.nix b/derivations/gemini/default.nix new file mode 100644 index 0000000..ee53130 --- /dev/null +++ b/derivations/gemini/default.nix @@ -0,0 +1,103 @@ +# { +# lib, +# buildNpmPackage, +# fetchFromGitHub, +# fetchNpmDeps, +# writeShellApplication, +# cacert, +# curl, +# gnused, +# jq, +# nix-prefetch-github, +# prefetch-npm-deps, +# gitUpdater, +# }: +# buildNpmPackage (finalAttrs: { +# pname = "superapp"; +# version = "0.4.2"; +# src = fetchFromGitHub { +# owner = "sortugdev"; +# repo = "superapp"; +# tag = "v${finalAttrs.version}"; +# hash = "sha256-DAenod/w9BydYdYsOnuLj7kCQRcTnZ81tf4MhLUug6c="; +# }; +# npmDeps = fetchNpmDeps { +# inherit (finalAttrs) src; +# hash = "sha256-otogkSsKJ5j1BY00y4SRhL9pm7CK9nmzVisvGCDIMlU="; +# }; +# preConfigure = '' +# mkdir -p packages/generated +# echo "export const GIT_COMMIT_INFO = { commitHash: '${finalAttrs.src.rev}' };" > packages/generated/git-commit.ts +# ''; +# installPhase = '' +# runHook preInstall +# mkdir -p $out/{bin,share/superapp-cli} +# cp -r node_modules $out/share/superapp-cli/ +# rm -f $out/share/superapp-cli/node_modules/@sortug/superapp-cli +# rm -f $out/share/superapp-cli/node_modules/@sortug/superapp-cli-core +# cp -r packages/cli $out/share/superapp-cli/node_modules/@sortug/superapp-cli +# cp -r packages/core $out/share/superapp-cli/node_modules/@sortug/superapp-cli-core +# ln -s $out/share/superapp-cli/node_modules/@sortug/superapp-cli/dist/index.js $out/bin/superapp +# runHook postInstall +# ''; +# postInstall = '' +# chmod +x "$out/bin/superapp" +# ''; +# passthru.updateScript = gitUpdater {}; +# meta = { +# description = "Super app that will save the world"; +# homepage = "https://github.com/sortugdev/superapp"; +# license = lib.licenses.asl20; +# maintainers = with lib.maintainers; [pepe]; +# platforms = lib.platforms.all; +# mainProgram = "superapp"; +# }; +# }) +{ + lib, + buildNpmPackage, + fetchFromGitHub, + fetchNpmDeps, + gitUpdater, +}: +buildNpmPackage (finalAttrs: { + pname = "gemini-cli"; + version = "0.1.7"; + src = fetchFromGitHub { + owner = "google-gemini"; + repo = "gemini-cli"; + tag = "v${finalAttrs.version}"; + hash = "sha256-DAenod/w9BydYdYsOnuLj7kCQRcTnZ81tf4MhLUug6c="; + }; + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = "sha256-otogkSsKJ5j1BY00y4SRhL9pm7CK9nmzVisvGCDIMlU="; + }; + preConfigure = '' + mkdir -p packages/generated + echo "export const GIT_COMMIT_INFO = { commitHash: '${finalAttrs.src.rev}' };" > packages/generated/git-commit.ts + ''; + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,share/gemini-cli} + cp -r node_modules $out/share/gemini-cli/ + rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli + rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-core + cp -r packages/cli $out/share/gemini-cli/node_modules/@google/gemini-cli + cp -r packages/core $out/share/gemini-cli/node_modules/@google/gemini-cli-core + ln -s $out/share/gemini-cli/node_modules/@google/gemini-cli/dist/index.js $out/bin/gemini + runHook postInstall + ''; + postInstall = '' + chmod +x "$out/bin/gemini" + ''; + passthru.updateScript = gitUpdater {}; + meta = { + description = "AI agent that brings the power of Gemini directly into your terminal"; + homepage = "https://github.com/google-gemini/gemini-cli"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [donteatoreo]; + platforms = lib.platforms.all; + mainProgram = "gemini"; + }; +}) diff --git a/derivations/gemini/flake.nix b/derivations/gemini/flake.nix new file mode 100644 index 0000000..9dd913d --- /dev/null +++ b/derivations/gemini/flake.nix @@ -0,0 +1,20 @@ +{ + description = "Gemini CLI flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = { + self, + nixpkgs, + }: let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + packages.${system}.default = pkgs.callPackage ./default.nix { + inherit (pkgs) lib buildNpmPackage fetchFromGitHub fetchNpmDeps gitUpdater; + inherit nixpkgs; + }; + }; +} diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 2355f61..0000000 --- a/flake.lock +++ /dev/null @@ -1,1924 +0,0 @@ -{ - "nodes": { - "agenix": { - "inputs": { - "agenix": "agenix_2", - "crane": "crane", - "flake-utils": "flake-utils", - "nixpkgs": [ - "nixpkgs" - ], - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1744897914, - "narHash": "sha256-GIVU92o2TZBnKQXTb76zpQbWR4zjU2rFqWKNIIpXnqA=", - "owner": "yaxitech", - "repo": "ragenix", - "rev": "40f2e17ecaeab4d78ec323e96a04548c0aaa5223", - "type": "github" - }, - "original": { - "owner": "yaxitech", - "repo": "ragenix", - "type": "github" - } - }, - "agenix_2": { - "inputs": { - "darwin": "darwin", - "home-manager": "home-manager", - "nixpkgs": [ - "agenix", - "nixpkgs" - ], - "systems": "systems" - }, - "locked": { - "lastModified": 1736955230, - "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", - "owner": "ryantm", - "repo": "agenix", - "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", - "type": "github" - }, - "original": { - "owner": "ryantm", - "repo": "agenix", - "type": "github" - } - }, - "blobs": { - "flake": false, - "locked": { - "lastModified": 1604995301, - "narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=", - "owner": "simple-nixos-mailserver", - "repo": "blobs", - "rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265", - "type": "gitlab" - }, - "original": { - "owner": "simple-nixos-mailserver", - "repo": "blobs", - "type": "gitlab" - } - }, - "cachix": { - "inputs": { - "devenv": [ - "devenv" - ], - "flake-compat": [ - "devenv" - ], - "git-hooks": [ - "devenv", - "git-hooks" - ], - "nixpkgs": [ - "devenv", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1748883665, - "narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=", - "owner": "cachix", - "repo": "cachix", - "rev": "f707778d902af4d62d8dd92c269f8e70de09acbe", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "latest", - "repo": "cachix", - "type": "github" - } - }, - "crane": { - "locked": { - "lastModified": 1741481578, - "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=", - "owner": "ipetkov", - "repo": "crane", - "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_2": { - "locked": { - "lastModified": 1752946753, - "narHash": "sha256-g5uP3jIj+STUcfTJDKYopxnSijs2agRg13H0SGL5iE4=", - "owner": "ipetkov", - "repo": "crane", - "rev": "544d09fecc8c2338542c57f3f742f1a0c8c71e13", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "darwin": { - "inputs": { - "nixpkgs": [ - "agenix", - "agenix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1700795494, - "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", - "type": "github" - }, - "original": { - "owner": "lnl7", - "ref": "master", - "repo": "nix-darwin", - "type": "github" - } - }, - "devenv": { - "inputs": { - "cachix": "cachix", - "flake-compat": "flake-compat", - "git-hooks": "git-hooks", - "nix": "nix", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1753386188, - "narHash": "sha256-x6VQB+z3brzYWscvY/UenGFv+FXc/G/5y1IT1TwtUms=", - "owner": "cachix", - "repo": "devenv", - "rev": "a19c43648f108256e442e46dc32d4eee57c71ac3", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "devenv", - "type": "github" - } - }, - "disko": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1753140376, - "narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", - "owner": "nix-community", - "repo": "disko", - "rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "disko", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "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_3": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_5": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_6": { - "locked": { - "lastModified": 1746162366, - "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", - "owner": "nix-community", - "repo": "flake-compat", - "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_7": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "devenv", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1753121425, - "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" - }, - "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": [ - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_4" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { - "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_5": { - "inputs": { - "systems": "systems_5" - }, - "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_6": { - "inputs": { - "systems": "systems_6" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_7": { - "inputs": { - "systems": "systems_7" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "git-hooks": { - "inputs": { - "flake-compat": [ - "devenv", - "flake-compat" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "devenv", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore_2", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_3": { - "inputs": { - "flake-compat": [ - "nixos-mailserver", - "flake-compat" - ], - "gitignore": "gitignore_4", - "nixpkgs": [ - "nixos-mailserver", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "devenv", - "git-hooks", - "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" - } - }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "git-hooks", - "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" - } - }, - "gitignore_3": { - "inputs": { - "nixpkgs": [ - "lanzaboote", - "pre-commit-hooks-nix", - "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" - } - }, - "gitignore_4": { - "inputs": { - "nixpkgs": [ - "nixos-mailserver", - "git-hooks", - "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" - } - }, - "gitignore_5": { - "inputs": { - "nixpkgs": [ - "nixos-rk3588", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "helix": { - "inputs": { - "nixpkgs": "nixpkgs_3", - "rust-overlay": "rust-overlay_2" - }, - "locked": { - "lastModified": 1753376980, - "narHash": "sha256-h7Say1U7r1ke3mfg3yvbzYnk3izmJ2g1zXzX5APNA8Q=", - "owner": "helix-editor", - "repo": "helix", - "rev": "4281228da35b02b0dcca3b4772b93d48d79ce046", - "type": "github" - }, - "original": { - "owner": "helix-editor", - "repo": "helix", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "agenix", - "agenix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1703113217, - "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "homix": { - "inputs": { - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1720719665, - "narHash": "sha256-BKcOoDlMC86zExMKXFXQ04HO99fUNFmtEdvP+gB45Pk=", - "owner": "homix-community", - "repo": "homix", - "rev": "62bc58f2350cbb061e61ac0f3d63018663fbe4cb", - "type": "github" - }, - "original": { - "owner": "homix-community", - "repo": "homix", - "type": "github" - } - }, - "impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "kmonad": { - "inputs": { - "nixpkgs": "nixpkgs_5" - }, - "locked": { - "dir": "nix", - "lastModified": 1751487254, - "narHash": "sha256-VSipBrxqqIXfQNrFBDGfeLu02CxU8ZI8YrJu0jGMytM=", - "owner": "kmonad", - "repo": "kmonad", - "rev": "f78b8fa9c82589abcc4964406d5e7bdf96860689", - "type": "github" - }, - "original": { - "dir": "nix", - "owner": "kmonad", - "repo": "kmonad", - "type": "github" - } - }, - "lanzaboote": { - "inputs": { - "crane": "crane_2", - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_6", - "pre-commit-hooks-nix": "pre-commit-hooks-nix", - "rust-overlay": "rust-overlay_3" - }, - "locked": { - "lastModified": 1753349211, - "narHash": "sha256-wGfVht5kOLc9t3GZxEr4IIq5QgHV6nB3w9qqhcVKloo=", - "owner": "nix-community", - "repo": "lanzaboote", - "rev": "4775927ef576f6493b79b1d205e42493d6878d47", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "lanzaboote", - "type": "github" - } - }, - "lib-aggregate": { - "inputs": { - "flake-utils": "flake-utils_6", - "nixpkgs-lib": "nixpkgs-lib_3" - }, - "locked": { - "lastModified": 1753013761, - "narHash": "sha256-ggvjKAeIsjwdu6+ECBGieyBgtotD7BrsGX5BirCacYU=", - "owner": "nix-community", - "repo": "lib-aggregate", - "rev": "f7c04e5ad6aa43a0f9698edb0d74b44e88ee99ee", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "lib-aggregate", - "type": "github" - } - }, - "microvm": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_7", - "spectrum": "spectrum" - }, - "locked": { - "lastModified": 1753388547, - "narHash": "sha256-zbjlS9sa2BbtE80YA9C9DMXwCADba3NjUROw/7Rpt7Y=", - "owner": "astro", - "repo": "microvm.nix", - "rev": "9694139d7c761e857ac9d025f9110a92cd8f7686", - "type": "github" - }, - "original": { - "owner": "astro", - "repo": "microvm.nix", - "type": "github" - } - }, - "nix": { - "inputs": { - "flake-compat": [ - "devenv", - "flake-compat" - ], - "flake-parts": "flake-parts", - "git-hooks-nix": [ - "devenv", - "git-hooks" - ], - "nixpkgs": [ - "devenv", - "nixpkgs" - ], - "nixpkgs-23-11": [ - "devenv" - ], - "nixpkgs-regression": [ - "devenv" - ] - }, - "locked": { - "lastModified": 1752773918, - "narHash": "sha256-dOi/M6yNeuJlj88exI+7k154z+hAhFcuB8tZktiW7rg=", - "owner": "cachix", - "repo": "nix", - "rev": "031c3cf42d2e9391eee373507d8c12e0f9606779", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "devenv-2.30", - "repo": "nix", - "type": "github" - } - }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751313918, - "narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, - "nix-gaming": { - "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_8" - }, - "locked": { - "lastModified": 1753435745, - "narHash": "sha256-DcwYM03dorV47ILK9WNF7tmOPQxbEOvPUFPL44yS+SE=", - "owner": "fufexan", - "repo": "nix-gaming", - "rev": "a73e77822e6e21c9275b484ae4c00e56cb689aec", - "type": "github" - }, - "original": { - "owner": "fufexan", - "repo": "nix-gaming", - "type": "github" - } - }, - "nixlib": { - "locked": { - "lastModified": 1736643958, - "narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixlib_2": { - "locked": { - "lastModified": 1709426687, - "narHash": "sha256-jLBZmwXf0WYHzLkmEMq33bqhX55YtT5edvluFr0RcSA=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "7873d84a89ae6e4841528ff7f5697ddcb5bdfe6c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixos-cn": { - "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1721353155, - "narHash": "sha256-OJWzQC04UBDkXJyxoGnhQZwdxITBnN5QfEczY9Ht4gQ=", - "owner": "nixos-cn", - "repo": "flakes", - "rev": "7d6545e2d0d1a2614a3b98f724ea5d6e068649d1", - "type": "github" - }, - "original": { - "owner": "nixos-cn", - "repo": "flakes", - "type": "github" - } - }, - "nixos-generators": { - "inputs": { - "nixlib": "nixlib", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751903740, - "narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=", - "owner": "nix-community", - "repo": "nixos-generators", - "rev": "032decf9db65efed428afd2fa39d80f7089085eb", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixos-generators", - "type": "github" - } - }, - "nixos-generators_2": { - "inputs": { - "nixlib": "nixlib_2", - "nixpkgs": [ - "nixos-rk3588", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709557527, - "narHash": "sha256-PV8oYqhTHX6FGZMQ1m5dhRuS914AhofPwgnAMhUZtwE=", - "owner": "nix-community", - "repo": "nixos-generators", - "rev": "d048d6fc4bada612ff08d4b9d5edc48d45389431", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixos-generators", - "type": "github" - } - }, - "nixos-hardware": { - "locked": { - "lastModified": 1753122741, - "narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=", - "owner": "nixos", - "repo": "nixos-hardware", - "rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "master", - "repo": "nixos-hardware", - "type": "github" - } - }, - "nixos-mailserver": { - "inputs": { - "blobs": "blobs", - "flake-compat": "flake-compat_4", - "git-hooks": "git-hooks_3", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-25_05": "nixpkgs-25_05" - }, - "locked": { - "lastModified": 1753285640, - "narHash": "sha256-ofa021NeHDXAxg5J8mSnn8rHa393PAlD85ZCetP4Qa0=", - "owner": "simple-nixos-mailserver", - "repo": "nixos-mailserver", - "rev": "ce87c8a9771d1a20c3fa3b60113b9b0821627dcb", - "type": "gitlab" - }, - "original": { - "owner": "simple-nixos-mailserver", - "repo": "nixos-mailserver", - "type": "gitlab" - } - }, - "nixos-rk3588": { - "inputs": { - "flake-utils": "flake-utils_5", - "nixos-generators": "nixos-generators_2", - "nixpkgs": "nixpkgs_9", - "pre-commit-hooks": "pre-commit-hooks" - }, - "locked": { - "lastModified": 1748879899, - "narHash": "sha256-IkEHngpGGzpL133+JXAUebUAu/rn2VoYvxxqBKoa5EY=", - "owner": "ryan4yin", - "repo": "nixos-rk3588", - "rev": "37ca2142a3c6e99e3a4145d235e1e80928c9195a", - "type": "github" - }, - "original": { - "owner": "ryan4yin", - "repo": "nixos-rk3588", - "type": "github" - } - }, - "nixos-wsl": { - "inputs": { - "flake-compat": "flake-compat_5", - "nixpkgs": "nixpkgs_10" - }, - "locked": { - "lastModified": 1752682362, - "narHash": "sha256-ZNIpqCG/CfhmV+TgIeyO/XbhDjSWpwWokHM44j0Mn0w=", - "owner": "nix-community", - "repo": "NixOS-WSL", - "rev": "20001f9bf0aaf2b1c307e43a5eec8cf8f800fe14", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "main", - "repo": "NixOS-WSL", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1750441195, - "narHash": "sha256-yke+pm+MdgRb6c0dPt8MgDhv7fcBbdjmv1ZceNTyzKg=", - "owner": "cachix", - "repo": "devenv-nixpkgs", - "rev": "0ceffe312871b443929ff3006960d29b120dc627", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "rolling", - "repo": "devenv-nixpkgs", - "type": "github" - } - }, - "nixpkgs-25_05": { - "locked": { - "lastModified": 1751741127, - "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "29e290002bfff26af1db6f64d070698019460302", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-darwin": { - "locked": { - "lastModified": 1753400184, - "narHash": "sha256-ok5zqdCMXKYOQY4SYL3/FGQVABmMcuIrAmalNizxTVc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "fabee8e1bcf70fee0cd7dbfdbd2f04ff43e780c9", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-25.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1751159883, - "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_2": { - "locked": { - "lastModified": 1751159883, - "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_3": { - "locked": { - "lastModified": 1752974445, - "narHash": "sha256-jj/HBJFSapTk4LfeJgNLk2wEE2BO6dgBYVRbXMNOCeM=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "9100109c11b6b5482ea949c980b86e24740dca08", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-old": { - "locked": { - "lastModified": 1751274312, - "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1753345091, - "narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unfree": { - "inputs": { - "nixpkgs": "nixpkgs_12" - }, - "locked": { - "lastModified": 1753367047, - "narHash": "sha256-LZTfxd2QObgFmLcM8pGB8DJR7X6xnF8OuH1SuuG3w60=", - "owner": "numtide", - "repo": "nixpkgs-unfree", - "rev": "0e54f984d3c8cfff8b9e8c4595f1276fbb4c1e54", - "type": "github" - }, - "original": { - "owner": "numtide", - "ref": "nixos-unstable", - "repo": "nixpkgs-unfree", - "type": "github" - } - }, - "nixpkgs-wayland": { - "inputs": { - "flake-compat": "flake-compat_6", - "lib-aggregate": "lib-aggregate", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1753412678, - "narHash": "sha256-GZD/SbD1GXYFFZQdSu/eF6Gr9lsigPoJPsD4nuqx/2I=", - "owner": "nix-community", - "repo": "nixpkgs-wayland", - "rev": "f8882d1b856d5cc8a7b288627cd8e7e935fe1978", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs-wayland", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1753250450, - "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1753250450, - "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "nixpkgs_13": { - "locked": { - "lastModified": 1753250450, - "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1730768919, - "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1740560979, - "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "5135c59491985879812717f4c9fea69604e7f26f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1719690277, - "narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1744157173, - "narHash": "sha256-bWSjxDwq7iVePrhmA7tY2dyMWHuNJo8knkO4y+q4ZkY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6a39c6e495eefabc935d8ddf66aa45d85b85fa3f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1753004467, - "narHash": "sha256-QznRD2YNqBVT+LjrV36rIuOZO1XKbjm1BgtMTIrTDVg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "147633ad35aba48f75af49be7ddc956c71c35acc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1746904237, - "narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1752900028, - "narHash": "sha256-dPALCtmik9Wr14MGqVXm+OQcv7vhPBXcWNIOThGnB/Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6b4955211758ba47fac850c040a27f23b9b4008f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1729256560, - "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nur": { - "inputs": { - "flake-parts": "flake-parts_5", - "nixpkgs": "nixpkgs_13" - }, - "locked": { - "lastModified": 1753439232, - "narHash": "sha256-bM3f3Ew4gQXIte1A5ye5aqACPciRBPmDKlzv9XbXmAs=", - "owner": "nix-community", - "repo": "NUR", - "rev": "bd271565c4d5c4d12ec920ed8ec83ecb0263e6c9", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "NUR", - "type": "github" - } - }, - "openai-codex": { - "inputs": { - "flake-utils": "flake-utils_7", - "nixpkgs": [ - "nixpkgs" - ], - "rust-overlay": "rust-overlay_4" - }, - "locked": { - "lastModified": 1753433800, - "narHash": "sha256-8xkya+4cK1vbg4lA0hFNQvOUp4OAobh2ZI2IFHZCeuo=", - "owner": "openai", - "repo": "codex", - "rev": "480e82b00daaf038afdd2e3304ee3b801f3661cf", - "type": "github" - }, - "original": { - "owner": "openai", - "repo": "codex", - "type": "github" - } - }, - "polybar-themes": { - "flake": false, - "locked": { - "lastModified": 1752591678, - "narHash": "sha256-POy0SUzc0ksi+dcj+SYAoHlbPs3famGXSVNizlaHOMw=", - "owner": "adi1090x", - "repo": "polybar-themes", - "rev": "42c29530904294d7cb75c525c492c5e0f01c4bfd", - "type": "github" - }, - "original": { - "owner": "adi1090x", - "repo": "polybar-themes", - "type": "github" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": [ - "nixos-rk3588" - ], - "flake-utils": [ - "nixos-rk3588", - "flake-utils" - ], - "gitignore": "gitignore_5", - "nixpkgs": [ - "nixos-rk3588", - "nixpkgs" - ], - "nixpkgs-stable": [ - "nixos-rk3588", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1702456155, - "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix": { - "inputs": { - "flake-compat": [ - "lanzaboote", - "flake-compat" - ], - "gitignore": "gitignore_3", - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "root": { - "inputs": { - "agenix": "agenix", - "devenv": "devenv", - "disko": "disko", - "flake-parts": "flake-parts_2", - "flake-utils": "flake-utils_2", - "git-hooks": "git-hooks_2", - "helix": "helix", - "homix": "homix", - "impermanence": "impermanence", - "kmonad": "kmonad", - "lanzaboote": "lanzaboote", - "microvm": "microvm", - "nix-darwin": "nix-darwin", - "nix-gaming": "nix-gaming", - "nixos-cn": "nixos-cn", - "nixos-generators": "nixos-generators", - "nixos-hardware": "nixos-hardware", - "nixos-mailserver": "nixos-mailserver", - "nixos-rk3588": "nixos-rk3588", - "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_11", - "nixpkgs-darwin": "nixpkgs-darwin", - "nixpkgs-old": "nixpkgs-old", - "nixpkgs-stable": "nixpkgs-stable", - "nixpkgs-unfree": "nixpkgs-unfree", - "nixpkgs-wayland": "nixpkgs-wayland", - "nur": "nur", - "openai-codex": "openai-codex", - "polybar-themes": "polybar-themes", - "waybar": "waybar", - "windsurf": "windsurf", - "wrapper-manager": "wrapper-manager", - "yek": "yek", - "zen-browser": "zen-browser" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "agenix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1741400194, - "narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { - "inputs": { - "nixpkgs": [ - "helix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1740623427, - "narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_3": { - "inputs": { - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1752979888, - "narHash": "sha256-qRRP3QavbwW0o+LOh31QNEfCgPlzK5SKlWALUJL6T7E=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "95719de18aefa63a624bf75a1ff98744b089ec12", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_4": { - "inputs": { - "nixpkgs": [ - "openai-codex", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1746844454, - "narHash": "sha256-GcUWDQUDRYrD34ol90KGUpjbVcOfUNbv0s955jPecko=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "be092436d4c0c303b654e4007453b69c0e33009e", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "spectrum": { - "flake": false, - "locked": { - "lastModified": 1751265943, - "narHash": "sha256-XoHSo6GEElzRUOYAEg/jlh5c8TDsyDESFIux3nU/NMc=", - "ref": "refs/heads/main", - "rev": "37c8663fab86fdb202fece339ef7ac7177ffc201", - "revCount": 904, - "type": "git", - "url": "https://spectrum-os.org/git/spectrum" - }, - "original": { - "type": "git", - "url": "https://spectrum-os.org/git/spectrum" - } - }, - "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" - } - }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_5": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_6": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_7": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "waybar": { - "inputs": { - "flake-compat": "flake-compat_7", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1753252308, - "narHash": "sha256-rwN74KZdAQVLdengxHpUwkyaZTdoRzFjJ3SSr6rx2/o=", - "owner": "alexays", - "repo": "waybar", - "rev": "0776e694df56c2c849b682369148210d81324e93", - "type": "github" - }, - "original": { - "owner": "alexays", - "repo": "waybar", - "type": "github" - } - }, - "windsurf": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1742369403, - "narHash": "sha256-Qox5x+FI4OhCs/7T/v4hZlR9Rm7ZfpXP7ISy+OrHCyw=", - "path": "/home/y/nixconf/derivations/windsurf", - "type": "path" - }, - "original": { - "path": "/home/y/nixconf/derivations/windsurf", - "type": "path" - } - }, - "wrapper-manager": { - "locked": { - "lastModified": 1751998186, - "narHash": "sha256-np2RxS8tRz/jGfUSYKxzg7cCi4dS8PL8gutLZfPMbIY=", - "owner": "viperML", - "repo": "wrapper-manager", - "rev": "8ad2484b485acad0632cb0af15b5eb704e3c1d0a", - "type": "github" - }, - "original": { - "owner": "viperML", - "repo": "wrapper-manager", - "type": "github" - } - }, - "yek": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747466629, - "narHash": "sha256-uoitiN9zrv9QaGf8mKIXhRxXtsNi6MupZVK+Zy3jOoA=", - "path": "/home/y/nixconf/derivations/yek", - "type": "path" - }, - "original": { - "path": "/home/y/nixconf/derivations/yek", - "type": "path" - } - }, - "zen-browser": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1753417134, - "narHash": "sha256-hxT+4xR0BCfgdrTM8+GJFpT4ze54e+oZeXlAbybs4cQ=", - "owner": "youwen5", - "repo": "zen-browser-flake", - "rev": "02e2b14e78a87dc4d0a4c401367992d58636c6f0", - "type": "github" - }, - "original": { - "owner": "youwen5", - "repo": "zen-browser-flake", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/hosts/cloud/packages.nix b/hosts/cloud/packages.nix index 89b7979..3a68a73 100644 --- a/hosts/cloud/packages.nix +++ b/hosts/cloud/packages.nix @@ -43,8 +43,9 @@ # networking curl - caddy # simple web server made with go - innernet + wget + # caddy # simple web server made with go + # innernet # s3 minio diff --git a/hosts/cloud/span/configuration.nix b/hosts/cloud/span/configuration.nix index 1157308..d887d37 100644 --- a/hosts/cloud/span/configuration.nix +++ b/hosts/cloud/span/configuration.nix @@ -8,10 +8,11 @@ }: { imports = [ # Include the results of the hardware scan. + ../../base.nix ./hardware-configuration.nix ./users.nix ./mail.nix - ./packages.nix + ../packages.nix ./nginx.nix ]; diff --git a/hosts/cloud/span/default.nix b/hosts/cloud/span/default.nix index 3669483..6bce414 100644 --- a/hosts/cloud/span/default.nix +++ b/hosts/cloud/span/default.nix @@ -1,4 +1,5 @@ inputs: [ inputs.disko.nixosModules.disko + inputs.nixos-mailserver.nixosModule ./configuration.nix ] diff --git a/hosts/cloud/span/flake.lock b/hosts/cloud/span/flake.lock deleted file mode 100644 index 6bc7bd0..0000000 --- a/hosts/cloud/span/flake.lock +++ /dev/null @@ -1,27 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1704008649, - "narHash": "sha256-rGPSWjXTXTurQN9beuHdyJhB8O761w1Zc5BqSSmHvoM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d44d59d2b5bd694cd9d996fd8c51d03e3e9ba7f7", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/hosts/cloud/span/flake.nix b/hosts/cloud/span/flake.nix deleted file mode 100644 index b801212..0000000 --- a/hosts/cloud/span/flake.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; - - outputs = { nixpkgs, ... }: - { - nixosConfigurations.spanmail = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ./configuration.nix - ./users.nix - ./packages.nix - ./mail.nix - ]; - }; - }; -} diff --git a/hosts/cloud/span/mail.nix b/hosts/cloud/span/mail.nix index 9cc44a7..beee817 100644 --- a/hosts/cloud/span/mail.nix +++ b/hosts/cloud/span/mail.nix @@ -3,18 +3,8 @@ pkgs, ... }: { - imports = [ - (builtins.fetchTarball { - url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/nixos-23.11/nixos-mailserver-nixos-23.11.tar.gz"; - # To get the sha256 of the nixos-mailserver tarball, we can use the nix-prefetch-url command: - # release="nixos-23.05"; nix-prefetch-url "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/${release}/nixos-mailserver-${release}.tar.gz" --unpack - - sha256 = "122vm4n3gkvlkqmlskiq749bhwfd0r71v6vcmg1bbyg4998brvx8"; - }) - ]; - - services.dovecot2.sieve.extensions = ["fileinto"]; mailserver = { + stateVersion = 3; enable = true; fqdn = "mail.spandrell.ch"; domains = ["spandrell.ch"]; @@ -32,7 +22,7 @@ hashedPasswordFile = "/home/span/mail.key"; }; "lol@spandrell.ch" = { - hashedPasswordFile = "/home/span/mail2.key"; + hashedPasswordFile = "/home/span/mail.key"; }; "sub@spandrell.ch" = { hashedPasswordFile = "/home/span/mail.key"; @@ -52,8 +42,6 @@ # down nginx and opens port 80. certificateScheme = "acme-nginx"; }; - security.acme.acceptTerms = true; - security.acme.defaults.email = "security@spandrell.ch"; services.roundcube = { enable = true; # this is the url of the vhost, not necessarily the same as the fqdn of @@ -67,5 +55,4 @@ $config['smtp_pass'] = "%p"; ''; }; - services.nginx.enable = true; } diff --git a/hosts/cloud/span/nginx.nix b/hosts/cloud/span/nginx.nix index 4da4b68..9bfa8ea 100644 --- a/hosts/cloud/span/nginx.nix +++ b/hosts/cloud/span/nginx.nix @@ -3,6 +3,8 @@ pkgs, ... }: { + security.acme.acceptTerms = true; + security.acme.defaults.email = "admin@spandrell.ch"; services.nginx = { enable = true; appendHttpConfig = '' diff --git a/hosts/cloud/span/packages.nix b/hosts/cloud/span/packages.nix deleted file mode 100644 index 6574071..0000000 --- a/hosts/cloud/span/packages.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ config, pkgs, ... }: - -{ - nixpkgs.config = { - allowUnfree = true; - }; - - environment.systemPackages = with pkgs; [ - vim - helix - fish - # unix utilities - tmux - bat # cat replacement written in Rust - colordiff - direnv # Per-directory environment variables - lsd - fd # find replacement written in Rust - fzf # Fuzzy finder - git - htop # Resource monitoring - jq # JSON parsing for the CLI - lsof - ripgrep # grep replacement written in Rust - sd # Fancy sed replacement - silver-searcher - strace # debug stack trace - tealdeer # tldr for various shell tools - testdisk - tokei # Handy tool to see lines of code by language - watchexec # Fileystem watcher/executor useful for speedy development - xsv # CSV file parsing utility - just # Intriguing new make replacement - mdcat # Markdown converter/reader for the CLI - tree - unzip - zip - - # networking - curl - wget - - minio - ncdu - ]; -} - diff --git a/hosts/local/fw11/configuration.nix b/hosts/local/fw11/configuration.nix index 69b51a2..11c09d1 100644 --- a/hosts/local/fw11/configuration.nix +++ b/hosts/local/fw11/configuration.nix @@ -34,6 +34,11 @@ # environment.systemPackages = [ # wrappers # ]; + # + + nixpkgs.config = { + allowUnfree = true; + }; environment = { etc = { "sway/config".source = ./swayconfig; |