diff --git a/flake.nix b/flake.nix index e6e7286..95e94bd 100644 --- a/flake.nix +++ b/flake.nix @@ -30,69 +30,42 @@ }: { nixosConfigurations = - ( - let - x86_64-hosts = - with builtins; - (map (file: nixpkgs.lib.removeSuffix ".nix" file) ( - filter (file: file != "aarch64-linux" && file != "installer") (attrNames (readDir ./hosts)) - )); - in - builtins.listToAttrs ( - map ( - host: - nixpkgs.lib.nameValuePair host ( - nixpkgs.lib.nixosSystem { - specialArgs = { - nixpkgs-flake = nixpkgs; - inherit nixvim; - inherit disko; - }; - system = "x86_64-linux"; - modules = [ - { networking.hostName = host; } - ./default.nix - ./hosts/${host}.nix + let + hosts = + with builtins; + nixpkgs.lib.lists.flatten ( + map ( + system: + map (host: { + system = system; + name = nixpkgs.lib.strings.removeSuffix ".nix" host; + }) (attrNames (readDir ./hosts/${system})) + ) (attrNames (readDir ./hosts)) + ); + in + builtins.listToAttrs ( + map ( + host: + nixpkgs.lib.nameValuePair host.name ( + nixpkgs.lib.nixosSystem { + specialArgs = { + nixpkgs-flake = nixpkgs; + inherit nixvim; + inherit disko; + }; + system = host.system; + modules = [ + { networking.hostName = host.name; } + ./default.nix + ./hosts/${host.system}/${host.name}.nix - disko.nixosModules.disko - impermanence.nixosModules.impermanence - sops-nix.nixosModules.sops - ]; - } - ) - ) x86_64-hosts - ) - ) - // ( - let - aarch64-linux-hosts = - with builtins; - (map (file: nixpkgs.lib.removeSuffix ".nix" file) (attrNames (readDir ./hosts/aarch64-linux))); - in - builtins.listToAttrs ( - map ( - host: - nixpkgs.lib.nameValuePair host ( - nixpkgs.lib.nixosSystem { - specialArgs = { - nixpkgs-flake = nixpkgs; - inherit nixvim; - inherit disko; - }; - system = "aarch64-linux"; - modules = [ - { networking.hostName = host; } - ./default.nix - ./hosts/aarch64-linux/${host}.nix - - disko.nixosModules.disko - impermanence.nixosModules.impermanence - sops-nix.nixosModules.sops - ]; - } - ) - ) aarch64-linux-hosts - ) + disko.nixosModules.disko + impermanence.nixosModules.impermanence + sops-nix.nixosModules.sops + ]; + } + ) + ) hosts ); hydraJobs.hosts = builtins.mapAttrs ( _: host: host.config.system.build.toplevel diff --git a/hosts/cert-store.nix b/hosts/x86_64-linux/cert-store.nix similarity index 81% rename from hosts/cert-store.nix rename to hosts/x86_64-linux/cert-store.nix index 640470b..9f4ef3b 100644 --- a/hosts/cert-store.nix +++ b/hosts/x86_64-linux/cert-store.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/ci.nix b/hosts/x86_64-linux/ci.nix similarity index 84% rename from hosts/ci.nix rename to hosts/x86_64-linux/ci.nix index 340b790..15bc106 100644 --- a/hosts/ci.nix +++ b/hosts/x86_64-linux/ci.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/forgejo.nix b/hosts/x86_64-linux/forgejo.nix similarity index 81% rename from hosts/forgejo.nix rename to hosts/x86_64-linux/forgejo.nix index 62ac4ac..57a8fbf 100644 --- a/hosts/forgejo.nix +++ b/hosts/x86_64-linux/forgejo.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/gaming.nix b/hosts/x86_64-linux/gaming.nix similarity index 86% rename from hosts/gaming.nix rename to hosts/x86_64-linux/gaming.nix index 07b1d1c..eaa15fc 100644 --- a/hosts/gaming.nix +++ b/hosts/x86_64-linux/gaming.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/helium.nix b/hosts/x86_64-linux/helium.nix similarity index 100% rename from hosts/helium.nix rename to hosts/x86_64-linux/helium.nix diff --git a/hosts/idacloud.nix b/hosts/x86_64-linux/idacloud.nix similarity index 89% rename from hosts/idacloud.nix rename to hosts/x86_64-linux/idacloud.nix index 7413a79..402deb3 100644 --- a/hosts/idacloud.nix +++ b/hosts/x86_64-linux/idacloud.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/installer.nix b/hosts/x86_64-linux/installer.nix similarity index 100% rename from hosts/installer.nix rename to hosts/x86_64-linux/installer.nix diff --git a/hosts/lithium.nix b/hosts/x86_64-linux/lithium.nix similarity index 100% rename from hosts/lithium.nix rename to hosts/x86_64-linux/lithium.nix diff --git a/hosts/nextcloud.nix b/hosts/x86_64-linux/nextcloud.nix similarity index 84% rename from hosts/nextcloud.nix rename to hosts/x86_64-linux/nextcloud.nix index f0ca247..e9cd89d 100644 --- a/hosts/nextcloud.nix +++ b/hosts/x86_64-linux/nextcloud.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/siit-dc.nix b/hosts/x86_64-linux/siit-dc.nix similarity index 86% rename from hosts/siit-dc.nix rename to hosts/x86_64-linux/siit-dc.nix index 1fb275e..961d4ff 100644 --- a/hosts/siit-dc.nix +++ b/hosts/x86_64-linux/siit-dc.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/hetzner-zfs-impermanence.nix ]; + imports = [ ../../disko/hetzner-zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/syncthing.nix b/hosts/x86_64-linux/syncthing.nix similarity index 100% rename from hosts/syncthing.nix rename to hosts/x86_64-linux/syncthing.nix diff --git a/hosts/vaultwarden.nix b/hosts/x86_64-linux/vaultwarden.nix similarity index 81% rename from hosts/vaultwarden.nix rename to hosts/x86_64-linux/vaultwarden.nix index 02a7358..db0234b 100644 --- a/hosts/vaultwarden.nix +++ b/hosts/x86_64-linux/vaultwarden.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence.nix ]; + imports = [ ../../disko/zfs-impermanence.nix ]; custom = { platform = { diff --git a/hosts/zfs-backup.nix b/hosts/x86_64-linux/zfs-backup.nix similarity index 79% rename from hosts/zfs-backup.nix rename to hosts/x86_64-linux/zfs-backup.nix index 167ca64..98e861e 100644 --- a/hosts/zfs-backup.nix +++ b/hosts/x86_64-linux/zfs-backup.nix @@ -1,6 +1,6 @@ { ... }: { - imports = [ ../disko/zfs-impermanence-backup.nix ]; + imports = [ ../../disko/zfs-impermanence-backup.nix ]; custom = { platform = {