aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-10-28 17:27:39 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-10-28 17:27:39 +0100
commit3c48cde7f249d354dbba6235d8d70ff4e4eb3293 (patch)
tree4e772782b77d41c33c0152437db78a615b16c217
parent{flake,hosts/default}: Use deploy-rs again (diff)
downloadnixos-server-3c48cde7f249d354dbba6235d8d70ff4e4eb3293.zip
flake: Switch inputs over to unflake
[`unflake`](https://codeberg.org/goldstein/unflake) allows prefect input de-dedulication and also gives us in general more control over which inputs exist and where they are fetched from.
Diffstat (limited to '')
-rw-r--r--flake.lock470
-rw-r--r--flake.nix119
-rw-r--r--inputs.nix117
-rwxr-xr-xscripts/unflake.sh9
-rw-r--r--unflake.nix395
5 files changed, 536 insertions, 574 deletions
diff --git a/flake.lock b/flake.lock
deleted file mode 100644
index 724d52f..0000000
--- a/flake.lock
+++ /dev/null
@@ -1,470 +0,0 @@
-{
- "nodes": {
- "agenix": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1792507013,
- "narHash": "sha256-8tKjSQajD3mUND1GaAuaWTcuyUpgcGsh5V+l4ibzC7U=",
- "owner": "ryantm",
- "repo": "agenix",
- "rev": "5e5b88a0c8e56f291a108c2fe9934054d9745b2e",
- "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"
- }
- },
- "crane": {
- "locked": {
- "lastModified": 1792350552,
- "narHash": "sha256-292lvpvxTGKryKxh3/3tcIVi85CwYGdl4oOi113Sob8=",
- "owner": "ipetkov",
- "repo": "crane",
- "rev": "e675a36b7377bebe41d548388a2501cbb16d380d",
- "type": "github"
- },
- "original": {
- "owner": "ipetkov",
- "repo": "crane",
- "type": "github"
- }
- },
- "disko": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1792526520,
- "narHash": "sha256-3hSJlv8mUVnZPMWK2+CM7a9O+nR6Z4mCh27NfLCmTPc=",
- "owner": "nix-community",
- "repo": "disko",
- "rev": "cedd626e11b635470fa6f9fdb8ad79b0075dd7f9",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "disko",
- "type": "github"
- }
- },
- "flake-compat": {
- "flake": false,
- "locked": {
- "lastModified": 1767039857,
- "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-utils": {
- "inputs": {
- "systems": [
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1791914995,
- "narHash": "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "b7a79d3fea1e214f6d668d521cecec0c01e26544",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "git-hooks": {
- "inputs": {
- "flake-compat": [
- "simple-nixos-mailserver",
- "flake-compat"
- ],
- "gitignore": "gitignore",
- "nixpkgs": [
- "simple-nixos-mailserver",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1778507602,
- "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "type": "github"
- }
- },
- "gitignore": {
- "inputs": {
- "nixpkgs": [
- "simple-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"
- }
- },
- "home-manager": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1792818383,
- "narHash": "sha256-199i7ubVSXTMl+0AAlL7cVCXSjcI+jWByMcimYjeMX0=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "24f2190587513b9c2f73db112a17844ae912d965",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "ref": "release-26.05",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "impermanence": {
- "inputs": {
- "home-manager": [
- "home-manager"
- ],
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1792739756,
- "narHash": "sha256-s0TeXWG5Ci75Y/Hzon0Z7NrN/fG773Rc54/z6oPFszQ=",
- "owner": "nix-community",
- "repo": "impermanence",
- "rev": "fa627f4c8b8e92f58f58a73d99ee4e1304e64eb2",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "impermanence",
- "type": "github"
- }
- },
- "library": {
- "locked": {
- "lastModified": 1738443114,
- "narHash": "sha256-IV7n/l3rFoz5UuavrDv0a7IIOPne0jDQVmJAR8bve8U=",
- "ref": "prime",
- "rev": "65bf71bb6ef05ce684924a1dc248bb2e8e2869fb",
- "revCount": 17,
- "type": "git",
- "url": "https://git.foss-syndicate.org/vhack.eu/nix-library"
- },
- "original": {
- "ref": "prime",
- "type": "git",
- "url": "https://git.foss-syndicate.org/vhack.eu/nix-library"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1792926719,
- "narHash": "sha256-zwKdE7sT2nhFOxXZVBkxH7RQw3J61coMAewFjNFSjR4=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "3ea16152199721889ec1b3e9ab1503dbadc583ef",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-26.05-small",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs-unstable": {
- "locked": {
- "lastModified": 1793007441,
- "narHash": "sha256-rKx8CXjTrCX41kYuoZkQrL6tJ8jkKoRDzeozwCNg+J4=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "0d1260143669e79a76652f664f106b84df8bbf32",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable-small",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "rocie": {
- "inputs": {
- "crane": [
- "crane"
- ],
- "nixpkgs": [
- "nixpkgs"
- ],
- "rocie-mobile": "rocie-mobile",
- "rocie-server": "rocie-server",
- "rust-overlay": [
- "rust-overlay"
- ],
- "treefmt-nix": [
- "treefmt-nix"
- ]
- },
- "locked": {
- "lastModified": 1784410502,
- "narHash": "sha256-clYdP0jhpcNzKjphgF8t4zAgwl303+EgLFXHHQivSjU=",
- "ref": "prime",
- "rev": "0aa914e6b1dd0db0a8e86e2849ae9f8951d431db",
- "revCount": 10,
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/rocie/nix"
- },
- "original": {
- "ref": "prime",
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/rocie/nix"
- }
- },
- "rocie-mobile": {
- "inputs": {
- "crane": [
- "rocie",
- "crane"
- ],
- "nixpkgs": [
- "rocie",
- "nixpkgs"
- ],
- "rust-overlay": [
- "rocie",
- "rust-overlay"
- ],
- "treefmt-nix": [
- "rocie",
- "treefmt-nix"
- ]
- },
- "locked": {
- "lastModified": 1784399261,
- "narHash": "sha256-aLsD1F3yQrp3ojlLWi5PpqCQ0+R+g4PhjXZcHUdG5Qo=",
- "ref": "prime",
- "rev": "64ebbcc28795b7a683a856ae9d97b618dfde24e3",
- "revCount": 19,
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/rocie/web-client"
- },
- "original": {
- "ref": "prime",
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/rocie/web-client"
- }
- },
- "rocie-server": {
- "inputs": {
- "nixpkgs": [
- "rocie",
- "nixpkgs"
- ],
- "treefmt-nix": [
- "rocie",
- "treefmt-nix"
- ]
- },
- "locked": {
- "lastModified": 1784410124,
- "narHash": "sha256-krTtnKWMciPVQxKGzeIkHv36BfhA87vGrrgshPoD/s8=",
- "ref": "prime",
- "rev": "d9e6dae43477a5c16e7983153f12aa94c674c7dd",
- "revCount": 53,
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/rocie/server"
- },
- "original": {
- "ref": "prime",
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/rocie/server"
- }
- },
- "root": {
- "inputs": {
- "agenix": "agenix",
- "crane": "crane",
- "disko": "disko",
- "flake-compat": "flake-compat",
- "flake-utils": "flake-utils",
- "home-manager": "home-manager",
- "impermanence": "impermanence",
- "library": "library",
- "nixpkgs": "nixpkgs",
- "nixpkgs-unstable": "nixpkgs-unstable",
- "rocie": "rocie",
- "rust-overlay": "rust-overlay",
- "simple-nixos-mailserver": "simple-nixos-mailserver",
- "systems": "systems",
- "treefmt-nix": "treefmt-nix",
- "turtle": "turtle"
- }
- },
- "rust-overlay": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1793000331,
- "narHash": "sha256-6sLQgHX/V/yF8VrhmsJroujeRua1GY3nDTEpnY7tHF4=",
- "owner": "oxalica",
- "repo": "rust-overlay",
- "rev": "0d0575988e4bb9ebc4cf1afb1cec1ceac0b5914e",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "rust-overlay",
- "type": "github"
- }
- },
- "simple-nixos-mailserver": {
- "inputs": {
- "blobs": "blobs",
- "flake-compat": [
- "flake-compat"
- ],
- "git-hooks": "git-hooks",
- "nixpkgs": [
- "nixpkgs-unstable"
- ]
- },
- "locked": {
- "lastModified": 1792432400,
- "narHash": "sha256-ayqyWcMFat+/FPyzm6iABDWyQwqKw4dG5yY6tcmN53Y=",
- "owner": "simple-nixos-mailserver",
- "repo": "nixos-mailserver",
- "rev": "b3e735a82a531e34ea3df3495026ca1d8a4e62fe",
- "type": "gitlab"
- },
- "original": {
- "owner": "simple-nixos-mailserver",
- "ref": "nixos-26.05",
- "repo": "nixos-mailserver",
- "type": "gitlab"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1680978846,
- "narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=",
- "owner": "nix-systems",
- "repo": "x86_64-linux",
- "rev": "2ecfcac5e15790ba6ce360ceccddb15ad16d08a8",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "x86_64-linux",
- "type": "github"
- }
- },
- "treefmt-nix": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1791885023,
- "narHash": "sha256-C3alQ2MEt0zVrUSho5NUDo3jmhbff72++bfwoqT9Omo=",
- "owner": "numtide",
- "repo": "treefmt-nix",
- "rev": "0d6d739a833ba9a9c93034862e4a7b061a062a1c",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "treefmt-nix",
- "type": "github"
- }
- },
- "turtle": {
- "inputs": {
- "crane": [
- "crane"
- ],
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1787522112,
- "narHash": "sha256-zwotplsOfzsp3WA9BT4PqQ4UViSRBBrW01VXJxaePj8=",
- "ref": "main",
- "rev": "8db6c69864ade203be1cacdb3107cbc8636c68b0",
- "revCount": 1865,
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/forks/atuin"
- },
- "original": {
- "ref": "main",
- "type": "git",
- "url": "https://git.foss-syndicate.org/bpeetz/forks/atuin"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/flake.nix b/flake.nix
index 8a51e87..23e773f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,115 +1,26 @@
{
description = "NixOS server config";
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05-small";
- nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable-small";
+ inputs = {};
- deploy-rs.url = "github:serokell/deploy-rs";
-
- home-manager = {
- url = "github:nix-community/home-manager/release-26.05";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
-
- library.url = "git+https://git.foss-syndicate.org/vhack.eu/nix-library?ref=prime";
-
- treefmt-nix = {
- url = "github:numtide/treefmt-nix";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
-
- # inputs for following
- systems = {
- url = "github:nix-systems/x86_64-linux"; # only evaluate for this system
- };
- flake-compat = {
- url = "github:edolstra/flake-compat";
- flake = false;
- };
- crane = {
- url = "github:ipetkov/crane";
- inputs = {};
- };
- flake-utils = {
- url = "github:numtide/flake-utils";
- inputs = {
- systems.follows = "systems";
- };
- };
- rust-overlay = {
- url = "github:oxalica/rust-overlay";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
+ outputs = {self, ...} @ attrs: let
+ sources = import ./unflake.nix;
+ inherit (sources) nixpkgs;
+ inherit (sources) nixpkgs-unstable;
+ inherit (sources) library;
+ inherit (sources) treefmt-nix;
+ inherit (sources) deploy-rs;
# modules
- agenix = {
- url = "github:ryantm/agenix";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
- turtle = {
- url = "git+https://git.foss-syndicate.org/bpeetz/forks/atuin?ref=main";
- inputs = {
- crane.follows = "crane";
- nixpkgs.follows = "nixpkgs";
- };
- };
- disko = {
- url = "github:nix-community/disko";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
- impermanence = {
- url = "github:nix-community/impermanence";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- home-manager.follows = "home-manager";
- };
- };
- rocie = {
- url = "git+https://git.foss-syndicate.org/bpeetz/rocie/nix?ref=prime";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- treefmt-nix.follows = "treefmt-nix";
- crane.follows = "crane";
- rust-overlay.follows = "rust-overlay";
- };
- };
- simple-nixos-mailserver = {
- url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-26.05";
- inputs = {
- flake-compat.follows = "flake-compat";
- nixpkgs.follows = "nixpkgs-unstable";
- };
- };
- };
+ inherit (sources) agenix;
+ inherit (sources) turtle;
+ inherit (sources) disko;
+ inherit (sources) impermanence;
+ inherit (sources) simple-nixos-mailserver;
+ inherit (sources) rocie;
- outputs = {
- self,
- nixpkgs,
- nixpkgs-unstable,
- library,
- treefmt-nix,
- deploy-rs,
- # modules
- agenix,
- turtle,
- disko,
- impermanence,
- simple-nixos-mailserver,
- rocie,
- ...
- } @ attrs: let
system = "x86_64-linux";
+
nixos-lib = import (nixpkgs + "/nixos/lib") {};
pkgs = nixpkgs.legacyPackages.${system};
pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
diff --git a/inputs.nix b/inputs.nix
new file mode 100644
index 0000000..326df90
--- /dev/null
+++ b/inputs.nix
@@ -0,0 +1,117 @@
+let
+ nixosVersion = "26.05";
+
+ lanzabooteVersion = "v1.2.0";
+
+ w_nixpkgs = ref: {
+ type = "github";
+ owner = "nixos";
+ repo = "nixpkgs";
+ inherit ref;
+ };
+ w_tarball = url: {
+ type = "tarball";
+ inherit url;
+ };
+ w_github = owner: repo: {
+ type = "github";
+ inherit owner repo;
+ };
+
+ nixos_stable = "https://channels.nixos.org/nixos-${nixosVersion}-small/nixexprs.tar.zst";
+ nixos_unstable = "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.zst";
+in {
+ _unflake.dedupRules = [
+ {
+ when = w_nixpkgs "nixpkgs-unstable";
+ set = w_tarball nixos_unstable;
+ }
+ {
+ when = w_nixpkgs "nixos-unstable-small";
+ set = w_tarball nixos_unstable;
+ }
+ {
+ when = w_nixpkgs "nixos-25.05";
+ set = w_tarball nixos_stable;
+ }
+ {
+ when = w_nixpkgs "nixos-25.11";
+ set = w_tarball nixos_stable;
+ }
+ {
+ when = w_nixpkgs "nixos-26.05";
+ set = w_tarball nixos_stable;
+ }
+ {
+ when = {url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.zst";};
+ set = w_tarball nixos_unstable;
+ }
+
+ # {
+ # when = {url = "https://git.foss-syndicate.org/vhack.eu/nix-library";};
+ # set = {url = "file:///home/nixos/s/nix-library";};
+ # }
+
+ {
+ when = w_github "nix-community" "home-manager";
+ set = {ref = "master";};
+ }
+
+ {
+ when = w_github "nixos" "flake-compat";
+ set = {
+ type = "git";
+ url = "https://git.lix.systems/lix-project/flake-compat";
+ ref = "main";
+ };
+ }
+
+ {
+ when = w_github "nix-systems" "default";
+ set = {ref = "main";};
+ }
+ {
+ when = w_github "nix-systems" "x86_64-linux";
+ set = {
+ repo = "default";
+ ref = "main";
+ };
+ }
+
+ {
+ when = w_github "numtide" "treefmt-nix";
+ set = {ref = "main";};
+ }
+ ];
+
+ # Actual inputs
+ agenix.url = "github:ryantm/agenix/main";
+ devshells.url = "git+https://git.foss-syndicate.org/bpeetz/devshells?ref=prime";
+ disko.url = "github:nix-community/disko/master";
+ flake-compat.url = "git+https://git.lix.systems/lix-project/flake-compat?ref=main";
+ home-manager.url = "github:nix-community/home-manager/master";
+ impermanence.url = "github:nix-community/impermanence/master";
+ lanzaboote.url = "github:nix-community/lanzaboote/${lanzabooteVersion}";
+ library.url = "git+https://git.foss-syndicate.org/vhack.eu/nix-library?ref=prime";
+ nix-index-database.url = "github:nix-community/nix-index-database/main";
+ nixos-generators.url = "github:nix-community/nixos-generators/master";
+ nixpkgs-stable.url = "tarball+${nixos_stable}";
+ nixpkgs.url = "tarball+${nixos_unstable}";
+ nixvim.url = "github:nix-community/nixvim/main";
+ qmk_firmware.url = "git+https://git.foss-syndicate.org/bpeetz/qmk_layout?ref=prime";
+ serverphone.url = "git+https://codeberg.org/vhack.eu/serverphone?ref=prime";
+ templates.url = "git+https://codeberg.org/bpeetz/flake-templates?ref=prime";
+ treefmt-nix.url = "github:numtide/treefmt-nix/main";
+ turtle.url = "git+https://git.foss-syndicate.org/bpeetz/forks/atuin?ref=main";
+
+ # Server
+ deploy-rs = {
+ url = "github:serokell/deploy-rs";
+ };
+ rocie = {
+ url = "git+https://git.foss-syndicate.org/bpeetz/rocie/nix?ref=prime";
+ };
+ simple-nixos-mailserver = {
+ url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-${nixosVersion}";
+ };
+}
diff --git a/scripts/unflake.sh b/scripts/unflake.sh
new file mode 100755
index 0000000..faaa533
--- /dev/null
+++ b/scripts/unflake.sh
@@ -0,0 +1,9 @@
+#! /usr/bin/env sh
+
+set -e
+
+NIX_CONFIG="${NIX_CONFIG-pure-eval = false}"
+export NIX_CONFIG
+nix run -f https://codeberg.org/goldstein/unflake/archive/main.tar.gz unflake -- "$@"
+
+# vim: ft=sh
diff --git a/unflake.nix b/unflake.nix
new file mode 100644
index 0000000..5da1812
--- /dev/null
+++ b/unflake.nix
@@ -0,0 +1,395 @@
+# @generated by https://codeberg.org/goldstein/unflake
+let
+ indirect_deps = {
+ };
+ specs = rec {
+ unflake_github_cachix_git-hooks-nix = {
+ type = "github";
+ owner = "cachix";
+ repo = "git-hooks.nix";
+ rev = "1ba1dbfe28738c9a71c266be6efa5b89e75491a9";
+ lastModified = 1791909798;
+ narHash = "sha256-VAhpCOmrun/KXimYfR8NM88bciKCui7CqHHhThSzgag=";
+ };
+ unflake_github_edolstra_flake-compat = {
+ type = "github";
+ owner = "edolstra";
+ repo = "flake-compat";
+ rev = "5edf11c44bc78a0d334f6334cdaf7d60d732daab";
+ lastModified = 1767039857;
+ narHash = "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=";
+ };
+ unflake_github_ipetkov_crane = {
+ type = "github";
+ owner = "ipetkov";
+ repo = "crane";
+ rev = "e675a36b7377bebe41d548388a2501cbb16d380d";
+ lastModified = 1792350552;
+ narHash = "sha256-292lvpvxTGKryKxh3/3tcIVi85CwYGdl4oOi113Sob8=";
+ };
+ unflake_github_nix-community_home-manager_ref_release-26-05 = {
+ type = "github";
+ owner = "nix-community";
+ repo = "home-manager";
+ rev = "24f2190587513b9c2f73db112a17844ae912d965";
+ lastModified = 1792818383;
+ narHash = "sha256-199i7ubVSXTMl+0AAlL7cVCXSjcI+jWByMcimYjeMX0=";
+ };
+ unflake_github_nix-community_disko = {
+ type = "github";
+ owner = "nix-community";
+ repo = "disko";
+ rev = "cedd626e11b635470fa6f9fdb8ad79b0075dd7f9";
+ lastModified = 1792526520;
+ narHash = "sha256-3hSJlv8mUVnZPMWK2+CM7a9O+nR6Z4mCh27NfLCmTPc=";
+ };
+ unflake_github_nix-community_home-manager = {
+ type = "github";
+ owner = "nix-community";
+ repo = "home-manager";
+ rev = "095fef2f265c3c0da4fe315efba8f8a04495ab34";
+ lastModified = 1793193205;
+ narHash = "sha256-X6xa6sGA7RnJQuZGbFMC+K+KToWAlBDCCjJXfTwEPsw=";
+ };
+ unflake_github_nix-community_impermanence = {
+ type = "github";
+ owner = "nix-community";
+ repo = "impermanence";
+ rev = "fa627f4c8b8e92f58f58a73d99ee4e1304e64eb2";
+ lastModified = 1792739756;
+ narHash = "sha256-s0TeXWG5Ci75Y/Hzon0Z7NrN/fG773Rc54/z6oPFszQ=";
+ };
+ unflake_github_nix-systems_default = {
+ type = "github";
+ owner = "nix-systems";
+ repo = "default";
+ rev = "d36eeed142f88b5a636f2e3856a53c61654cf29b";
+ lastModified = 1791244623;
+ narHash = "sha256-uuanbkFk8a313Zfrxdcz8Us/yQtaxNnKJtX8v0ZPpd8=";
+ };
+ unflake_github_nix-systems_x86_64-linux = {
+ type = "github";
+ owner = "nix-systems";
+ repo = "x86_64-linux";
+ rev = "2ecfcac5e15790ba6ce360ceccddb15ad16d08a8";
+ lastModified = 1680978846;
+ narHash = "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=";
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-26-05 = {
+ type = "github";
+ owner = "nixos";
+ repo = "nixpkgs";
+ rev = "718f670e845328e9c2cecdd832835712b2cbd065";
+ lastModified = 1793015021;
+ narHash = "sha256-Ee5BWo8sh3pGt70QUdRajnaginqFmWvrtdBc4gJzhks=";
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-26-05-small = {
+ type = "github";
+ owner = "nixos";
+ repo = "nixpkgs";
+ rev = "08d3a97586f6b6343b3b5e799980773629432610";
+ lastModified = 1793183032;
+ narHash = "sha256-56mFMf8heLNfYhcgbrh4GpN5x+G9JOfTFXZC3n6w0qM=";
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-unstable = {
+ type = "github";
+ owner = "nixos";
+ repo = "nixpkgs";
+ rev = "31ecbaca1bdefa45dffc409f0250bd8039ea0010";
+ lastModified = 1793110635;
+ narHash = "sha256-dhoW6VgFWlaodSY5jrBn+CF2FLmaUvDVgM7+C7T2+NM=";
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-unstable-small = {
+ type = "github";
+ owner = "nixos";
+ repo = "nixpkgs";
+ rev = "fa45202b90a351983649116adb577827b2a9a679";
+ lastModified = 1793166571;
+ narHash = "sha256-3+DlA8JY6abKt8G9hoZgTiSNLxdkGTn2a5MeiNDXmIc=";
+ };
+ unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable = {
+ type = "github";
+ owner = "nixos";
+ repo = "nixpkgs";
+ rev = "f05535a0efcb2134c478d1e88434fadf486d42b5";
+ lastModified = 1793136825;
+ narHash = "sha256-2pkE69JpFRInaARSczZytcfPw83IL82E2KdhbWGwdMs=";
+ };
+ unflake_github_nixos_flake-compat = {
+ type = "github";
+ owner = "nixos";
+ repo = "flake-compat";
+ rev = "5edf11c44bc78a0d334f6334cdaf7d60d732daab";
+ lastModified = 1767039857;
+ narHash = "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=";
+ };
+ unflake_github_numtide_flake-utils = {
+ type = "github";
+ owner = "numtide";
+ repo = "flake-utils";
+ rev = "b7a79d3fea1e214f6d668d521cecec0c01e26544";
+ lastModified = 1791914995;
+ narHash = "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=";
+ };
+ unflake_github_numtide_treefmt-nix = {
+ type = "github";
+ owner = "numtide";
+ repo = "treefmt-nix";
+ rev = "0d6d739a833ba9a9c93034862e4a7b061a062a1c";
+ lastModified = 1791885023;
+ narHash = "sha256-C3alQ2MEt0zVrUSho5NUDo3jmhbff72++bfwoqT9Omo=";
+ };
+ unflake_github_oxalica_rust-overlay = {
+ type = "github";
+ owner = "oxalica";
+ repo = "rust-overlay";
+ rev = "19ecdd08213836b36c4296a3a4f4af5a3d5308db";
+ lastModified = 1793174968;
+ narHash = "sha256-u5nUf4cewaT36iIzG1s/VECktqUMiZaGF5BsgervsvQ=";
+ };
+ unflake_github_ryantm_agenix = {
+ type = "github";
+ owner = "ryantm";
+ repo = "agenix";
+ rev = "5e5b88a0c8e56f291a108c2fe9934054d9745b2e";
+ lastModified = 1792507013;
+ narHash = "sha256-8tKjSQajD3mUND1GaAuaWTcuyUpgcGsh5V+l4ibzC7U=";
+ };
+ unflake_github_serokell_deploy-rs = {
+ type = "github";
+ owner = "serokell";
+ repo = "deploy-rs";
+ rev = "1cec0527bd09074bbee6d4461900ce5d58267217";
+ lastModified = 1792446739;
+ narHash = "sha256-eINUtQW48bf9G3EYprthHMll8VDKxaXQP52TZFuwMmE=";
+ };
+ unflake_gitlab_simple-nixos-mailserver_nixos-mailserver_ref_nixos-26-05 = {
+ type = "gitlab";
+ owner = "simple-nixos-mailserver";
+ repo = "nixos-mailserver";
+ rev = "b3e735a82a531e34ea3df3495026ca1d8a4e62fe";
+ lastModified = 1792432400;
+ narHash = "sha256-ayqyWcMFat+/FPyzm6iABDWyQwqKw4dG5yY6tcmN53Y=";
+ };
+ unflake_gitlab_simple-nixos-mailserver_blobs = {
+ type = "gitlab";
+ owner = "simple-nixos-mailserver";
+ repo = "blobs";
+ rev = "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265";
+ lastModified = 1604995301;
+ narHash = "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-forks-atuin_ref_main = {
+ type = "git";
+ url = "https://git.foss-syndicate.org/bpeetz/forks/atuin";
+ ref = "main";
+ rev = "8db6c69864ade203be1cacdb3107cbc8636c68b0";
+ revCount = 1865;
+ lastModified = 1787522112;
+ narHash = "sha256-zwotplsOfzsp3WA9BT4PqQ4UViSRBBrW01VXJxaePj8=";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-nix_ref_prime = {
+ type = "git";
+ url = "https://git.foss-syndicate.org/bpeetz/rocie/nix";
+ ref = "prime";
+ rev = "0aa914e6b1dd0db0a8e86e2849ae9f8951d431db";
+ revCount = 10;
+ lastModified = 1784410502;
+ narHash = "sha256-clYdP0jhpcNzKjphgF8t4zAgwl303+EgLFXHHQivSjU=";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-server_ref_prime = {
+ type = "git";
+ url = "https://git.foss-syndicate.org/bpeetz/rocie/server";
+ ref = "prime";
+ rev = "d9e6dae43477a5c16e7983153f12aa94c674c7dd";
+ revCount = 53;
+ lastModified = 1784410124;
+ narHash = "sha256-krTtnKWMciPVQxKGzeIkHv36BfhA87vGrrgshPoD/s8=";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-web-client_ref_prime = {
+ type = "git";
+ url = "https://git.foss-syndicate.org/bpeetz/rocie/web-client";
+ ref = "prime";
+ rev = "64ebbcc28795b7a683a856ae9d97b618dfde24e3";
+ revCount = 19;
+ lastModified = 1784399261;
+ narHash = "sha256-aLsD1F3yQrp3ojlLWi5PpqCQ0+R+g4PhjXZcHUdG5Qo=";
+ };
+ unflake_git_https---git-foss-syndicate-org-vhack-eu-nix-library_ref_prime = {
+ type = "git";
+ url = "https://git.foss-syndicate.org/vhack.eu/nix-library";
+ ref = "prime";
+ rev = "65bf71bb6ef05ce684924a1dc248bb2e8e2869fb";
+ revCount = 17;
+ lastModified = 1738443114;
+ narHash = "sha256-IV7n/l3rFoz5UuavrDv0a7IIOPne0jDQVmJAR8bve8U=";
+ };
+ unflake_tarball_https---channels-nixos-org-nixpkgs-unstable-nixexprs-tar-zst = {
+ type = "tarball";
+ url = "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1103464.f05535a0efcb/nixexprs.tar.zst?lastModified=1793136825";
+ rev = "f05535a0efcb2134c478d1e88434fadf486d42b5";
+ lastModified = 1793136825;
+ narHash = "sha256-8VGQQhZfWvvWCoqOf5lb8AzUVbKJKvnihiXwJKKPH0s=";
+ };
+ unflake_github_edolstra_flake-compat_flake_false = unflake_github_edolstra_flake-compat;
+ unflake_github_nixos_flake-compat_flake_false = unflake_github_nixos_flake-compat;
+ unflake_gitlab_simple-nixos-mailserver_blobs_flake_false = unflake_gitlab_simple-nixos-mailserver_blobs;
+ };
+ deps = indirect_deps // builtins.mapAttrs (_: spec: builtins.fetchTree spec) specs;
+ injections = rec {
+ unflake_github_cachix_git-hooks-nix = {
+ flake-compat = "unflake_github_nixos_flake-compat_flake_false";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable";
+ };
+ unflake_github_ipetkov_crane = {
+ };
+ unflake_github_nix-community_home-manager_ref_release-26-05 = {
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-26-05";
+ };
+ unflake_github_nix-community_disko = {
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable";
+ };
+ unflake_github_nix-community_home-manager = {
+ nixpkgs = "unflake_tarball_https---channels-nixos-org-nixpkgs-unstable-nixexprs-tar-zst";
+ };
+ unflake_github_nix-community_impermanence = {
+ home-manager = "unflake_github_nix-community_home-manager";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-unstable";
+ };
+ unflake_github_nix-systems_default = {
+ };
+ unflake_github_nix-systems_x86_64-linux = {
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-26-05 = {
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-26-05-small = {
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-unstable = {
+ };
+ unflake_github_nixos_nixpkgs_ref_nixos-unstable-small = {
+ };
+ unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable = {
+ };
+ unflake_github_numtide_flake-utils = {
+ systems = "unflake_github_nix-systems_default";
+ };
+ unflake_github_numtide_treefmt-nix = {
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable";
+ };
+ unflake_github_oxalica_rust-overlay = {
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable";
+ };
+ unflake_github_ryantm_agenix = {
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-26-05";
+ };
+ unflake_github_serokell_deploy-rs = {
+ flake-compat = "unflake_github_edolstra_flake-compat_flake_false";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable";
+ utils = "unflake_github_numtide_flake-utils";
+ };
+ unflake_gitlab_simple-nixos-mailserver_nixos-mailserver_ref_nixos-26-05 = {
+ blobs = "unflake_gitlab_simple-nixos-mailserver_blobs_flake_false";
+ flake-compat = "unflake_github_nixos_flake-compat_flake_false";
+ git-hooks = "unflake_github_cachix_git-hooks-nix";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-26-05-small";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-forks-atuin_ref_main = {
+ crane = "unflake_github_ipetkov_crane";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-unstable-small";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-nix_ref_prime = {
+ crane = "unflake_github_ipetkov_crane";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-unstable-small";
+ rocie-mobile = "unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-web-client_ref_prime";
+ rocie-server = "unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-server_ref_prime";
+ rust-overlay = "unflake_github_oxalica_rust-overlay";
+ treefmt-nix = "unflake_github_numtide_treefmt-nix";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-server_ref_prime = {
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-unstable-small";
+ treefmt-nix = "unflake_github_numtide_treefmt-nix";
+ };
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-web-client_ref_prime = {
+ crane = "unflake_github_ipetkov_crane";
+ nixpkgs = "unflake_github_nixos_nixpkgs_ref_nixos-unstable-small";
+ rust-overlay = "unflake_github_oxalica_rust-overlay";
+ treefmt-nix = "unflake_github_numtide_treefmt-nix";
+ };
+ unflake_git_https---git-foss-syndicate-org-vhack-eu-nix-library_ref_prime = {
+ };
+ unflake_tarball_https---channels-nixos-org-nixpkgs-unstable-nixexprs-tar-zst = {
+ };
+ };
+ inject = name: flake_path: subdir:
+ let
+ inputs = builtins.mapAttrs (_: dep: universe.${dep}) injections.${name} // {
+ inherit self;
+ };
+ sourceInfo = deps.${name};
+ outPath = "${sourceInfo.outPath}${subdir}";
+ outputs = (import "${sourceInfo.outPath}/${flake_path}").outputs inputs;
+ self = outputs // sourceInfo // {
+ inherit inputs outputs outPath sourceInfo;
+ _type = "flake";
+ _flake = true;
+ };
+ in self;
+ universe = rec {
+ unflake_github_cachix_git-hooks-nix = inject "unflake_github_cachix_git-hooks-nix" "flake.nix" "";
+ unflake_github_edolstra_flake-compat_flake_false = deps.unflake_github_edolstra_flake-compat_flake_false;
+ unflake_github_ipetkov_crane = inject "unflake_github_ipetkov_crane" "flake.nix" "";
+ unflake_github_nix-community_home-manager_ref_release-26-05 = inject "unflake_github_nix-community_home-manager_ref_release-26-05" "flake.nix" "";
+ unflake_github_nix-community_disko = inject "unflake_github_nix-community_disko" "flake.nix" "";
+ unflake_github_nix-community_home-manager = inject "unflake_github_nix-community_home-manager" "flake.nix" "";
+ unflake_github_nix-community_impermanence = inject "unflake_github_nix-community_impermanence" "flake.nix" "";
+ unflake_github_nix-systems_default = inject "unflake_github_nix-systems_default" "flake.nix" "";
+ unflake_github_nix-systems_x86_64-linux = inject "unflake_github_nix-systems_x86_64-linux" "flake.nix" "";
+ unflake_github_nixos_nixpkgs_ref_nixos-26-05 = inject "unflake_github_nixos_nixpkgs_ref_nixos-26-05" "flake.nix" "";
+ unflake_github_nixos_nixpkgs_ref_nixos-26-05-small = inject "unflake_github_nixos_nixpkgs_ref_nixos-26-05-small" "flake.nix" "";
+ unflake_github_nixos_nixpkgs_ref_nixos-unstable = inject "unflake_github_nixos_nixpkgs_ref_nixos-unstable" "flake.nix" "";
+ unflake_github_nixos_nixpkgs_ref_nixos-unstable-small = inject "unflake_github_nixos_nixpkgs_ref_nixos-unstable-small" "flake.nix" "";
+ unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable = inject "unflake_github_nixos_nixpkgs_ref_nixpkgs-unstable" "flake.nix" "";
+ unflake_github_nixos_flake-compat_flake_false = deps.unflake_github_nixos_flake-compat_flake_false;
+ unflake_github_numtide_flake-utils = inject "unflake_github_numtide_flake-utils" "flake.nix" "";
+ unflake_github_numtide_treefmt-nix = inject "unflake_github_numtide_treefmt-nix" "flake.nix" "";
+ unflake_github_oxalica_rust-overlay = inject "unflake_github_oxalica_rust-overlay" "flake.nix" "";
+ unflake_github_ryantm_agenix = inject "unflake_github_ryantm_agenix" "flake.nix" "";
+ unflake_github_serokell_deploy-rs = inject "unflake_github_serokell_deploy-rs" "flake.nix" "";
+ unflake_gitlab_simple-nixos-mailserver_nixos-mailserver_ref_nixos-26-05 = inject "unflake_gitlab_simple-nixos-mailserver_nixos-mailserver_ref_nixos-26-05" "flake.nix" "";
+ unflake_gitlab_simple-nixos-mailserver_blobs_flake_false = deps.unflake_gitlab_simple-nixos-mailserver_blobs_flake_false;
+ unflake_git_https---git-foss-syndicate-org-bpeetz-forks-atuin_ref_main = inject "unflake_git_https---git-foss-syndicate-org-bpeetz-forks-atuin_ref_main" "flake.nix" "";
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-nix_ref_prime = inject "unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-nix_ref_prime" "flake.nix" "";
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-server_ref_prime = inject "unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-server_ref_prime" "flake.nix" "";
+ unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-web-client_ref_prime = inject "unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-web-client_ref_prime" "flake.nix" "";
+ unflake_git_https---git-foss-syndicate-org-vhack-eu-nix-library_ref_prime = inject "unflake_git_https---git-foss-syndicate-org-vhack-eu-nix-library_ref_prime" "flake.nix" "";
+ unflake_tarball_https---channels-nixos-org-nixpkgs-unstable-nixexprs-tar-zst = inject "unflake_tarball_https---channels-nixos-org-nixpkgs-unstable-nixexprs-tar-zst" "flake.nix" "";
+ };
+ inputs = {
+ agenix = universe.unflake_github_ryantm_agenix;
+ crane = universe.unflake_github_ipetkov_crane;
+ deploy-rs = universe.unflake_github_serokell_deploy-rs;
+ disko = universe.unflake_github_nix-community_disko;
+ flake-compat = universe.unflake_github_edolstra_flake-compat_flake_false;
+ flake-utils = universe.unflake_github_numtide_flake-utils;
+ home-manager = universe.unflake_github_nix-community_home-manager_ref_release-26-05;
+ impermanence = universe.unflake_github_nix-community_impermanence;
+ library = universe.unflake_git_https---git-foss-syndicate-org-vhack-eu-nix-library_ref_prime;
+ nixpkgs = universe.unflake_github_nixos_nixpkgs_ref_nixos-unstable-small;
+ nixpkgs-unstable = universe.unflake_github_nixos_nixpkgs_ref_nixos-unstable-small;
+ rocie = universe.unflake_git_https---git-foss-syndicate-org-bpeetz-rocie-nix_ref_prime;
+ rust-overlay = universe.unflake_github_oxalica_rust-overlay;
+ simple-nixos-mailserver = universe.unflake_gitlab_simple-nixos-mailserver_nixos-mailserver_ref_nixos-26-05;
+ systems = universe.unflake_github_nix-systems_x86_64-linux;
+ treefmt-nix = universe.unflake_github_numtide_treefmt-nix;
+ turtle = universe.unflake_git_https---git-foss-syndicate-org-bpeetz-forks-atuin_ref_main;
+ };
+in inputs // {
+ withInputs = fn: let outputs = fn (inputs // { inherit self; }); self = outputs // {
+ inherit inputs outputs;
+ _type = "flake";
+ outPath = builtins.toString ./.;
+ }; in self;
+ __functor = self: self.withInputs;
+ self = throw "to use inputs.self, write `import ./unflake.nix (inputs: ...)`";
+ _unflake = { inherit specs deps injections; };
+}