feat: colmena

This commit is contained in:
Adriano Caloiaro 2025-03-16 09:55:55 -06:00
parent 20167e772f
commit bd0babfd59
No known key found for this signature in database
GPG key ID: C2BC56DE73CE3F75
19 changed files with 369 additions and 239 deletions

View file

@ -10,11 +10,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1723293904,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"lastModified": 1736955230,
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm",
"repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github"
},
"original": {
@ -37,11 +37,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1728672398,
"narHash": "sha256-KxuGSoVUFnQLB2ZcYODW7AVPAh9JqRlD5BrfsC/Q4qs=",
"lastModified": 1737621947,
"narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=",
"owner": "cachix",
"repo": "cachix",
"rev": "aac51f698309fd0f381149214b7eee213c66ef0a",
"rev": "f65a3cd5e339c223471e64c051434616e18cc4f5",
"type": "github"
},
"original": {
@ -199,11 +199,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1732896163,
"narHash": "sha256-eS0vSZT0ZUguR6Jf6CyupvDn4m+r/mgN6Vtg61ECYC0=",
"lastModified": 1742042793,
"narHash": "sha256-SU5v9uPXvg+Tl5GbUEKliIBE7YV7aVbZlhBx28Dax18=",
"owner": "cachix",
"repo": "devenv",
"rev": "2c928a199d56191d7a53f29ccafa56238c8ce4e5",
"rev": "7e999fc6ba55e72776a4f7b97be55642b393201a",
"type": "github"
},
"original": {
@ -403,11 +403,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@ -607,11 +607,11 @@
"systems": "systems_6"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -629,17 +629,14 @@
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-stable": [
"devenv"
]
},
"locked": {
"lastModified": 1730302582,
"narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=",
"lastModified": 1740849354,
"narHash": "sha256-oy33+t09FraucSZ2rZ6qnD1Y1c8azKKmQuCvF2ytUko=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf",
"rev": "4a709a8ce9f8c08fa7ddb86761fe488ff7858a07",
"type": "github"
},
"original": {
@ -793,11 +790,11 @@
"spectrum": "spectrum"
},
"locked": {
"lastModified": 1733003272,
"narHash": "sha256-ratU5qCcRuOojgPWM90gda4qrxukNqbyFi+kan2Ln04=",
"lastModified": 1741893540,
"narHash": "sha256-NEsR+FQ+AsY4cOZ3OL69JVdPTAYzSzBqeAhHGRRuDGk=",
"owner": "astro",
"repo": "microvm.nix",
"rev": "e8d5f12b834a59187c7ec147a8952a0567f97939",
"rev": "5bbc126db87b5ffc36394df630eead403c48fac8",
"type": "github"
},
"original": {
@ -825,11 +822,11 @@
]
},
"locked": {
"lastModified": 1727438425,
"narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=",
"lastModified": 1734114420,
"narHash": "sha256-n52PUzub5jZWc8nI/sR7UICOheU8rNA+YZ73YaHeCBg=",
"owner": "domenkozar",
"repo": "nix",
"rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546",
"rev": "bde6a1a0d1f2af86caa4d20d23eca019f3d57eee",
"type": "github"
},
"original": {
@ -998,11 +995,11 @@
},
"nixos-facter-modules": {
"locked": {
"lastModified": 1732288619,
"narHash": "sha256-zSQ2cR+NRJfHUVfkv+O6Wi53wXfzX8KHiO8fRfnvc0M=",
"lastModified": 1738752252,
"narHash": "sha256-/nA3tDdp/2g0FBy8966ppC2WDoyXtUWaHkZWL+N3ZKc=",
"owner": "numtide",
"repo": "nixos-facter-modules",
"rev": "862648589993a96480c2255197a28feea712f68f",
"rev": "60f8b8f3f99667de6a493a44375e5506bf0c48b1",
"type": "github"
},
"original": {
@ -1013,11 +1010,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1732483221,
"narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=",
"lastModified": 1741792691,
"narHash": "sha256-f0BVt1/cvA0DQ/q3rB+HY4g4tKksd03ZkzI4xehC2Ew=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405",
"rev": "e1f12151258b12c567f456d8248e4694e9390613",
"type": "github"
},
"original": {
@ -1029,11 +1026,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"lastModified": 1733212471,
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github"
},
"original": {
@ -1173,11 +1170,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1716977621,
"narHash": "sha256-Q1UQzYcMJH4RscmpTkjlgqQDX5yi1tZL0O345Ri6vXQ=",
"lastModified": 1733477122,
"narHash": "sha256-qamMCz5mNpQmgBwc8SB5tVMlD5sbwVIToVZtSxMph9s=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "4267e705586473d3e5c8d50299e71503f16a6fb6",
"rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857",
"type": "github"
},
"original": {
@ -1253,11 +1250,11 @@
},
"nixpkgs_8": {
"locked": {
"lastModified": 1735426064,
"narHash": "sha256-ZmPwhiGZN3cWPn2IAHOwG3ZNcIPrAN8NJC/dqdKSaO4=",
"lastModified": 1742141234,
"narHash": "sha256-74Ru6I5KpkkswGN+wAfJivzZlll3bjz1sw9cZORLgN8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0e8de0aded9ca19a9f93ed06bf2305f39df539d6",
"rev": "6a93024550dbbeaa32478e50756fa3d0b48bd29a",
"type": "github"
},
"original": {
@ -1431,11 +1428,11 @@
"spectrum": {
"flake": false,
"locked": {
"lastModified": 1729945407,
"narHash": "sha256-iGNMamNOAnVTETnIVqDWd6fl74J8fLEi1ejdZiNjEtY=",
"lastModified": 1733308308,
"narHash": "sha256-+RcbMAjSxV1wW5UpS9abIG1lFZC8bITPiFIKNnE7RLs=",
"ref": "refs/heads/main",
"rev": "f1d94ee7029af18637dbd5fdf4749621533693fa",
"revCount": 764,
"rev": "80c9e9830d460c944c8f730065f18bb733bc7ee2",
"revCount": 792,
"type": "git",
"url": "https://spectrum-os.org/git/spectrum"
},

View file

@ -1,33 +0,0 @@
{
disko.devices = {
disk = {
primary = {
device = "/dev/sda";
type = "disk";
content = {
type = "gpt";
partitions = {
ESP = {
type = "EF00";
size = "500M";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = ["umask=0077"];
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

View file

@ -10,11 +10,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1723293904,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"lastModified": 1736955230,
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm",
"repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github"
},
"original": {
@ -37,11 +37,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1728672398,
"narHash": "sha256-KxuGSoVUFnQLB2ZcYODW7AVPAh9JqRlD5BrfsC/Q4qs=",
"lastModified": 1737621947,
"narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=",
"owner": "cachix",
"repo": "cachix",
"rev": "aac51f698309fd0f381149214b7eee213c66ef0a",
"rev": "f65a3cd5e339c223471e64c051434616e18cc4f5",
"type": "github"
},
"original": {
@ -168,6 +168,30 @@
"type": "github"
}
},
"colmena": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"nixpkgs"
],
"stable": "stable"
},
"locked": {
"lastModified": 1739900653,
"narHash": "sha256-hPSLvw6AZQYrZyGI6Uq4XgST7benF/0zcCpugn/P0yM=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "2370d4336eda2a9ef29fce10fa7076ae011983ab",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "colmena",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
@ -193,17 +217,17 @@
"devenv": {
"inputs": {
"cachix": "cachix",
"flake-compat": "flake-compat",
"flake-compat": "flake-compat_2",
"git-hooks": "git-hooks",
"nix": "nix",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1732460433,
"narHash": "sha256-ve3DZpwbVNTdohE2RxA7QdCvByHNHu38+oZHjVGK6Ok=",
"lastModified": 1742042793,
"narHash": "sha256-SU5v9uPXvg+Tl5GbUEKliIBE7YV7aVbZlhBx28Dax18=",
"owner": "cachix",
"repo": "devenv",
"rev": "6f9f633c50265c836aa685feefe15ea2a8865d28",
"rev": "7e999fc6ba55e72776a4f7b97be55642b393201a",
"type": "github"
},
"original": {
@ -215,7 +239,7 @@
"devenv_2": {
"inputs": {
"cachix": "cachix_2",
"flake-compat": "flake-compat_3",
"flake-compat": "flake-compat_4",
"nix": "nix_5",
"nixpkgs": "nixpkgs_7",
"pre-commit-hooks": "pre-commit-hooks_3"
@ -362,11 +386,11 @@
]
},
"locked": {
"lastModified": 1732742778,
"narHash": "sha256-i+Uw8VOHzQe9YdNwKRbzvaPWLE07tYVqUDzSFTXhRgk=",
"lastModified": 1741786315,
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
"owner": "nix-community",
"repo": "disko",
"rev": "341482e2f4d888e3f60cae1c12c3df896e7230d8",
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
"type": "github"
},
"original": {
@ -402,11 +426,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
@ -416,6 +440,22 @@
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1673956053,
@ -431,7 +471,7 @@
"type": "github"
}
},
"flake-compat_3": {
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1673956053,
@ -518,15 +558,12 @@
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1689068808,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
@ -536,12 +573,15 @@
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1689068808,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"type": "github"
},
"original": {
@ -566,6 +606,21 @@
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"inputs": {
"systems": "systems_3"
},
@ -583,7 +638,7 @@
"type": "github"
}
},
"flake-utils_5": {
"flake-utils_6": {
"inputs": {
"systems": "systems_5"
},
@ -610,17 +665,14 @@
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-stable": [
"devenv"
]
},
"locked": {
"lastModified": 1730302582,
"narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=",
"lastModified": 1740849354,
"narHash": "sha256-oy33+t09FraucSZ2rZ6qnD1Y1c8azKKmQuCvF2ytUko=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf",
"rev": "4a709a8ce9f8c08fa7ddb86761fe488ff7858a07",
"type": "github"
},
"original": {
@ -676,7 +728,7 @@
},
"gomod2nix": {
"inputs": {
"flake-utils": "flake-utils_4",
"flake-utils": "flake-utils_5",
"nixpkgs": [
"ess",
"nixpkgs"
@ -784,11 +836,11 @@
]
},
"locked": {
"lastModified": 1727438425,
"narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=",
"lastModified": 1734114420,
"narHash": "sha256-n52PUzub5jZWc8nI/sR7UICOheU8rNA+YZ73YaHeCBg=",
"owner": "domenkozar",
"repo": "nix",
"rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546",
"rev": "bde6a1a0d1f2af86caa4d20d23eca019f3d57eee",
"type": "github"
},
"original": {
@ -820,6 +872,27 @@
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"colmena",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-github-actions_2": {
"inputs": {
"nixpkgs": [
"ess",
@ -850,7 +923,7 @@
},
"nix_2": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-compat": "flake-compat_3",
"nixpkgs": [
"ess",
"devenv",
@ -976,13 +1049,28 @@
"type": "github"
}
},
"nixos-facter-modules": {
"locked": {
"lastModified": 1738752252,
"narHash": "sha256-/nA3tDdp/2g0FBy8966ppC2WDoyXtUWaHkZWL+N3ZKc=",
"owner": "numtide",
"repo": "nixos-facter-modules",
"rev": "60f8b8f3f99667de6a493a44375e5506bf0c48b1",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nixos-facter-modules",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1731797098,
"narHash": "sha256-UhWmEZhwJZmVZ1jfHZFzCg+ZLO9Tb/v3Y6LC0UNyeTo=",
"lastModified": 1741792691,
"narHash": "sha256-f0BVt1/cvA0DQ/q3rB+HY4g4tKksd03ZkzI4xehC2Ew=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "672ac2ac86f7dff2f6f3406405bddecf960e0db6",
"rev": "e1f12151258b12c567f456d8248e4694e9390613",
"type": "github"
},
"original": {
@ -994,11 +1082,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"lastModified": 1733212471,
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github"
},
"original": {
@ -1138,11 +1226,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1716977621,
"narHash": "sha256-Q1UQzYcMJH4RscmpTkjlgqQDX5yi1tZL0O345Ri6vXQ=",
"lastModified": 1733477122,
"narHash": "sha256-qamMCz5mNpQmgBwc8SB5tVMlD5sbwVIToVZtSxMph9s=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "4267e705586473d3e5c8d50299e71503f16a6fb6",
"rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857",
"type": "github"
},
"original": {
@ -1218,11 +1306,11 @@
},
"nixpkgs_8": {
"locked": {
"lastModified": 1735426064,
"narHash": "sha256-ZmPwhiGZN3cWPn2IAHOwG3ZNcIPrAN8NJC/dqdKSaO4=",
"lastModified": 1742141234,
"narHash": "sha256-74Ru6I5KpkkswGN+wAfJivzZlll3bjz1sw9cZORLgN8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0e8de0aded9ca19a9f93ed06bf2305f39df539d6",
"rev": "6a93024550dbbeaa32478e50756fa3d0b48bd29a",
"type": "github"
},
"original": {
@ -1234,8 +1322,8 @@
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"flake-utils": "flake-utils_2",
"nix-github-actions": "nix-github-actions_2",
"nixpkgs": [
"ess",
"devenv",
@ -1271,7 +1359,7 @@
"devenv",
"nix"
],
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils_3",
"gitignore": [
"ess",
"devenv",
@ -1356,7 +1444,7 @@
"devenv",
"flake-compat"
],
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_4",
"gitignore": "gitignore_2",
"nixpkgs": [
"ess",
@ -1382,16 +1470,34 @@
"root": {
"inputs": {
"agenix": "agenix",
"colmena": "colmena",
"devenv": "devenv",
"disko": "disko",
"ess": "ess",
"flake-utils": "flake-utils_5",
"flake-utils": "flake-utils_6",
"nix-editor": "nix-editor",
"nixos-facter-modules": "nixos-facter-modules",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_8",
"systems": "systems_6"
}
},
"stable": {
"locked": {
"lastModified": 1730883749,
"narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dba414932936fde69f0606b4f1d87c5bc0003ede",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,

View file

@ -3,7 +3,12 @@
inputs = {
flake-utils.url = "github:numtide/flake-utils";
nixpkgs.url = "github:NixOS/nixpkgs/master";
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
systems.url = "github:nix-systems/default";
colmena = {
url = "github:zhaofengli/colmena";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
devenv.url = "github:cachix/devenv";
nix-editor = {
@ -26,7 +31,9 @@
outputs = inputs @ {
agenix,
colmena,
devenv,
disko,
nixpkgs,
nix-editor,
self,
@ -38,6 +45,24 @@
forEachSystem = nixpkgs.lib.genAttrs (import systems);
in {
inherit lib;
colmenaHive = colmena.lib.makeHive self.outputs.colmena;
colmena = {
meta = {
nixpkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [
inputs.agenix.overlays.default
];
};
specialArgs = {
inherit self;
inherit inputs;
inherit (inputs) agenix;
};
};
sfos = ./hosts/sfos;
};
devShells = forEachSystem (system: let
config = self.devShells.${system}.default.config;
in {
@ -51,7 +76,7 @@
packages = with pkgs; [
inputs.nix-editor.packages.${system}.default
colmena
inputs.colmena.packages.${system}.colmena
jq
opentofu
pre-commit
@ -91,6 +116,7 @@
sfos-init = {
description = "Initialize cluster members";
exec = ''
cd ./bootstrap
#!/run/current-system/sw/bin/bash
# tofu apply -auto-approve
# Add our public key to the sfos user's authorized keys
@ -98,33 +124,18 @@
echo "Initializing $host"
hostName=$(tofu output -json | hostName=$host jq -r ".cluster_nodes.value[] | select(.ipv4_address == \"$host\").name")
echo "Setting host name: $hostName"
nix-editor nixos/sfos-host-01/configuration.nix users.users.sfos.openssh.authorizedKeys.keys -i -v "[\"$TF_VAR_admin_ssh_public_key\"]"
nix-editor nixos/sfos-host-01/configuration.nix users.users.root.openssh.authorizedKeys.keys -i -v "[\"$TF_VAR_admin_ssh_public_key\"]"
nix-editor nixos/sfos-host-01/configuration.nix networking.hostName -i -v "\"$hostName\"\;"
nix-editor ../hosts/sfos/default.nix users.users.sfos.openssh.authorizedKeys.keys -i -v "[\"$TF_VAR_admin_ssh_public_key\"]"
nix-editor ../hosts/sfos/default.nix users.users.root.openssh.authorizedKeys.keys -i -v "[\"$TF_VAR_admin_ssh_public_key\"]"
nix-editor ../hosts/sfos/default.nix networking.hostName -i -v "\"$hostName\"\;"
ssh_public_key=$(ssh-keyscan $host | grep ssh-ed25519 | cut -d " " -f 2,3)
nix-editor ../secrets/secrets.nix tailscale_auth_key.age.publicKeys -i -v "\"$ssh_public_key\""
nixos-rebuild switch --flake .#sfos --target-host "root@$host"
nix-editor ../hosts/sfos/secrets/secrets.nix tailscale_auth_key.publicKeys -i -v "[localMachine \"$ssh_public_key\"]"
# nixos-rebuild switch --flake .#sfos --target-host "root@$host"
# nixos-rebuild switch --flake .#sfos --target-host "root@$host" --build-host "root@$host"
# nixos-rebuild switch --flake .#sfos --target-host "sfos@$host" --build-host "sfos@$host" --use-remote-sudo
done
'';
};
sfos-rebuild = {
description = "Rebuild cluster members with nixos configuration changes";
exec = ''
#!/run/current-system/sw/bin/bash
# Add our public key to the sfos user's authorized keys
nix-editor nixos/sfos-host-01/configuration.nix users.users.sfos.openssh.authorizedKeys.keys -i -v "[\"$TF_VAR_admin_ssh_public_key\"]"
# For every host created, rebuild
tofu output -json | jq '.cluster_ips.value | join(",")' | tr -d '"' | while read host; do
echo "Rebuilding $host"
nixos-rebuild switch --flake .#sfos --target-host "sfos@$host" --build-host "sfos@$host" --use-remote-sudo
ssh_public_key=$(ssh-keyscan $host | grep ssh-ed25519 | cut -d " " -f 2,3)
incus remote generate-certificate 2&>/dev/null
grep -qxF "export TF_VAR_incus_cluster_ip=$host" ../.env || echo "export TF_VAR_incus_cluster_ip=$host" >> ../.env
grep -qxF "export TF_VAR_agenix_public_key=\"$ssh_public_key\"" ../.env || echo "export TF_VAR_agenix_public_key=\"$ssh_public_key\"" >> ../.env
done
cd ../hosts/sfos/secrets
agenix -r -i ~/.ssh/id_rsa_agenix
cd ../../..
'';
};
};

View file

@ -5,7 +5,7 @@
...
}: {
imports = [
../../common/nix.nix
./nix.nix
];
boot = {

View file

@ -1,30 +1,42 @@
{
config,
inputs,
pkgs,
agenix,
...
}: {
deployment = {
targetHost = "65.109.8.31";
targetPort = 22;
targetUser = "root";
# buildOnTarget = true;
};
imports = [
agenix.nixosModules.default
inputs.nixos-facter-modules.nixosModules.facter
{config.facter.reportPath = ./facter.json;}
inputs.disko.nixosModules.disko
./hardware-configuration.nix
./disko-config.nix
../common/base-system.nix
../../common/nix.nix
./base-system.nix
./nix.nix
];
boot = {
supportedFilesystems = ["btrfs" "ntfs" "vfat" "ext4"];
loader.grub = {
enable = true;
device = "/dev/sda";
};
};
age.secrets.docker_auth_json = {
file = ../../../secrets/docker_ghcr_auth_config_json.age;
path = "/run/containers/0/auth.json";
};
# age.secrets.docker_auth_json = {
# file = ./secrets/docker_ghcr_auth_config_json.age;
# path = "/run/containers/0/auth.json";
# };
age.secrets.tailscale_auth_key = {
file = ../../../secrets/tailscale_auth_key.age;
file = ./secrets/tailscale_auth_key;
};
environment.systemPackages = with pkgs; [

View file

@ -0,0 +1,99 @@
{
disko.devices.disk.os = {
# device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_59633795";
device = "/dev/sda";
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
};
# ESP = {
# type = "EF00";
# size = "500M";
# content = {
# type = "filesystem";
# format = "vfat";
# mountpoint = "/boot";
# mountOptions = ["umask=0077"];
# };
# };
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
}
# {
# disko.devices.disk.os = {
# type = "disk";
# content = {
# device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_59632825";
# type = "gpt";
# partitions = {
# boot = {
# type = "EF02";
# size = "1M";
# };
# ESP = {
# type = "EF00";
# size = "500M";
# content = {
# type = "filesystem";
# format = "vfat";
# mountpoint = "/boot";
# mountOptions = ["umask=0077"];
# };
# };
# root = {
# size = "100%";
# content = {
# type = "filesystem";
# format = "ext4";
# mountpoint = "/";
# };
# };
# };
# };
# };
# }
# {
# device = "/dev/sda";
# type = "disk";
# content = {
# type = "gpt";
# partitions = {
# boot = {
# type = "EF02";
# size = "1M";
# };
# ESP = {
# type = "EF00";
# size = "500M";
# content = {
# type = "filesystem";
# format = "vfat";
# mountpoint = "/boot";
# mountOptions = ["umask=0077"];
# };
# };
# root = {
# size = "100%";
# content = {
# type = "filesystem";
# format = "ext4";
# mountpoint = "/";
# };
# };
# };
# };
# }

Binary file not shown.

View file

@ -4,7 +4,6 @@ let
sfos = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJLQTZC70O2rE4cVDOWlrFLa6mxIJ+B+4gE7eVbmaw2k";
sfosnew = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINYjXyfiGMxgc4z8F4BtMKsTr2hSXrpoy7mAWNsWJXWS";
in {
"tailscale_auth_key.age".publicKeys = [localMachine sfos sfosnew];
"docker_ghcr_auth_config_json.age".publicKeys = [localMachine sfos sfosnew];
tailscale_auth_key.age.publicKeys = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDurmd+IXyAF+MLeQqXqS9UCo7tbj7a5MtMJeWA0BL5D";
tailscale_auth_key.publicKeys = [localMachine "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrsG0K92nEWxcvZpHSJJNGnmw+WPyrrkOUDdtrffC9G"];
}

Binary file not shown.

View file

View file

@ -1 +0,0 @@
{}

View file

@ -20,28 +20,4 @@ terraform {
}
}
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = var.incus_cluster_ip
scheme = "https"
port = 8443
address = var.incus_cluster_ip
token = var.incus_token
default = true
}
}
resource "incus_instance" "adriano-fyi" {
name = "adriano-fyi"
image = "ghcr:acaloiaro/adrianofyi"
config = {
"boot.autostart" = true
"user.caddyserver.http.enable" = true
"user.caddyserver.http.matchers.host" = "adriano.fyi"
"user.caddyserver.http.upstream.port" = 3000
}
}

View file

@ -1,11 +1,11 @@
variable "incus_cluster_ip" {
type = string
description = "The IP address of the primary incus cluster member"
}
# variable "incus_cluster_ip" {
# type = string
# description = "The IP address of the primary incus cluster member"
# }
variable "incus_token" {
type = string
description = "The client token with which to authenticate to incus"
}
# variable "incus_token" {
# type = string
# description = "The client token with which to authenticate to incus"
# }

View file

@ -1,18 +0,0 @@
age-encryption.org/v1
-> ssh-rsa QGRkYA
sNHP3Q2rKetFcdc7yv13Z4zmZ2XShaUKrL5KN41wkD0NIkK3uUlh4+N0rg2Fe/OZ
iVwWANWAF8dIl/GKTTeBeuzckKQWADDnz+9EAUOt5lX9cNumhmGG/GUHKonWDC8X
pJJkT4nK2iuDEOtrbrmxCTwlsQF35HTAW+cPthhasTUD9CFTxbiakTKFDL54gcAE
9/NtePuz/xty9kdG+AbgZCalKcOSzVvUu2+KD9Rr6odURNHs+3/TDzH6HpRnWF5n
ejmd3ef2bowarC0hPzt6JMZIORQi3nHi+APVcAZlcMdm3n1vllPkIke3c8c/MLnz
qt3g0383cBakour3e0DAvG1TEvqEGXxFW6I5rkBQtlCWNT//nan+630IzsIhdJOF
EH8fgD9xzjspLrBjmVx9/NFEV4O+ICaNSZiqiJK/CgLfvYH+R0zwWhOyTP9GPdbS
+oRc79Dkmo4tVLk7WxfKNsh82dP4ZzwoZxKD558jdiIXh1Sex9hHmFz/xcB180iQ
-> ssh-ed25519 9G9Vsg /OnxGGif5Ox4qBXN5nWELtaGy1pmTAUs7d/rDj3cxTg
X6qfqPemLcPcVL6HHJCMzl9/X+LXMIKzhubsDrMfMk8
-> ssh-ed25519 KKRRSg GNwYj/oE/Gyukx0k3loCXU5ZqTXhJMEwXhdR+4A8uB0
LNzOr+anyz1I4y+kU5r6ZL0e83VuqqR4hCqAiMGveTA
--- V0MX+fYxeoUKBYCsA0AI8KMj+Bcy4LHEmXzB3bDqsdM
<EFBFBD>ÄôØu˜¯ö˜,ûY«útq QmþƒNô<> ÆÐ—Þ½Ÿºs«ð×jZ<7F>-œØvƒÙ:CÐ æ<WBÑ©#å§×
kšJýc³<EFBFBD>jl"ZIïîïLðâXŽÇ1ãíKÙ¬¡Æs&uË †Õƒ™T•w²C$*Mã;IáZ«ø…w <77>Ïæƒu.

View file

@ -1,18 +0,0 @@
age-encryption.org/v1
-> ssh-rsa QGRkYA
Kyx6DzPRot8q8Puw8Z2nYno6+rbiJVnBNv6Pn58wpaE7KAYTLm/SY2qlaZwBTrzw
5WuDNb6/b8HfxhmttUzH3NmLhx2RJpra88/ylJ5zCxbAaXd4SHWOpb6/JDy82AT0
nanUGOrPmoH56K7D6kknOm1HEqncyM6kEO9l2Yc9/8whN14cFKtNAIYyEGXe28yF
Cb4xxUU2t7fhSCGVDYUgLRW9Mc5UI/JZGqR49ETM/1jlFpRw2mvmirsNnGOuINfL
madxhmPn/zckXkk7KxAl8SarqoLt6iF1vQpDBbLsUmBQcBEETFxKJ4hnhH9dtbR0
IZnaAyf70tEZ6lQxRVyN60EZ0lzF7BC+kbbbyJ4CENto5Y3RSdxCQrt5aCFWt0X/
JxKemCNgsM7vB/WHtRd2NKPPM+60DQDUNPzgWK6fsrjrdagfyGELCIeo0E3kvfQ5
DfryH/4DlxXyAEiMUxqV1WDszCJHZVlSaOmI7BzGQGNkClo0h1wOihYsPYmaSF6a
-> ssh-ed25519 9G9Vsg BgNCz9NfEXGT6Am5ODF/eKUPmjMzcnlYoZKl49+tj3E
w/ScMHznGolsGeRZo17L4392FEIHy5C3iku0ONm4pRE
-> ssh-ed25519 KKRRSg BR4KkWHOceDVux1xvava06eCyfYcngESYiVICqGzmRI
wcFcyfrRvSvpHb2+nPekY3QmLq8Z7TNdaqFLq0w9e7U
--- OyxZvmHteBC8XTUvvQmJN+AicYT2NuTHm1Q7EexwSZg
r×;ðÈÐïgå¢dÎaD×Âíµv e³xønì”`Ri?p <0C>­°ö6¶÷†çáçÚ›–>@ø4ö´8ôȉÝÍz-ëŸ<C3AB>€ç@E¬A”¡Ø<C2A1>ýDZÒ
ì™S©Ú