summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorGrigory Shipunov2025-02-02 23:18:19 +0000
committerGrisha Shipunov2025-02-05 18:39:11 +0100
commit9ebfe0c59b6503b4b29744ad7b63c3e4addcc84b (patch)
tree381f92c8131930ae5fc3dcfdd190c8aee73264ba /flake.nix
parent9842b2df1aaee81591f50904e89ababb6677e0e3 (diff)
less microvm boilerplate
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix181
1 files changed, 80 insertions, 101 deletions
diff --git a/flake.nix b/flake.nix
index 1070488..541db86 100644
--- a/flake.nix
+++ b/flake.nix
@@ -60,116 +60,95 @@
}:
{
- nixosConfigurations = {
- toaster = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- lanzaboote.nixosModules.lanzaboote
- nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3
- lix-module.nixosModules.default
-
- ./hosts/toaster
-
- ./modules/basic-tools
- ./modules/binary-caches.nix
- ./modules/devtools.nix
- ./modules/gnome.nix
- ./modules/gnupg.nix
- ./modules/radio.nix
- ./modules/science.nix
- ./modules/tlp.nix
- ./modules/virtualization.nix
- ./hosts/toaster/secure-boot.nix
- ./modules/chromium.nix
- ./modules/mail
- ./modules/wg
- ];
- };
- cloud = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- lix-module.nixosModules.default
-
- ./hosts/cloud
-
- ./modules/basic-tools
- ./modules/server
- ./modules/binary-caches.nix
- ./modules/wg
- ];
- };
- minime = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.host
- lix-module.nixosModules.default
-
- ./hosts/minime
- ./modules/basic-tools
- ./modules/server
- ./modules/binary-caches.nix
- ./modules/wg
+ nixosConfigurations =
+ let
+ microvm-list = [
+ "auth"
+ "immich"
+ "miniflux"
+ "radicale"
];
- };
- auth = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.microvm
- authentik-nix.nixosModules.default
+ microvms = builtins.listToAttrs (
+ map (vm: {
+ name = vm;
+ value = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
+ modules = [
+ sops-nix.nixosModules.sops
+ microvm.nixosModules.microvm
- ./hosts/auth
- ./modules/server
- ./modules/wg
- ];
- };
+ ./hosts/${vm}
+ ./modules/server
+ ./modules/wg
+ ];
+ };
+ }) microvm-list
+ );
+ in
+ microvms
+ // {
+ toaster = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
+ modules = [
+ sops-nix.nixosModules.sops
+ lanzaboote.nixosModules.lanzaboote
+ nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3
+ lix-module.nixosModules.default
- immich = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.microvm
+ ./hosts/toaster
- ./hosts/immich
- ./modules/server
- ./modules/wg
- ];
- };
+ ./modules/basic-tools
+ ./modules/binary-caches.nix
+ ./modules/devtools.nix
+ ./modules/gnome.nix
+ ./modules/gnupg.nix
+ ./modules/radio.nix
+ ./modules/science.nix
+ ./modules/tlp.nix
+ ./modules/virtualization.nix
+ ./hosts/toaster/secure-boot.nix
+ ./modules/chromium.nix
+ ./modules/mail
+ ./modules/wg
+ ];
+ };
+ cloud = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
+ modules = [
+ sops-nix.nixosModules.sops
+ lix-module.nixosModules.default
- miniflux = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.microvm
+ ./hosts/cloud
- ./hosts/miniflux
- ./modules/server
- ./modules/wg
- ];
- };
+ ./modules/basic-tools
+ ./modules/server
+ ./modules/binary-caches.nix
+ ./modules/wg
+ ];
+ };
+ minime = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
+ modules = [
+ sops-nix.nixosModules.sops
+ microvm.nixosModules.host
+ lix-module.nixosModules.default
- radicale = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- sops-nix.nixosModules.sops
- microvm.nixosModules.microvm
+ ./hosts/minime
+ ./modules/basic-tools
+ ./modules/server
+ ./modules/binary-caches.nix
+ ./modules/wg
- ./hosts/radicale
- ./modules/server
- ./modules/wg
- ];
+ {
+ config.microvm.autostart = microvm-list;
+ }
+ ];
+ };
};
- };
};
}