From 534b18b9c5e89d0efbab118b692cc3f21f7b6050 Mon Sep 17 00:00:00 2001 From: Chris Toph Date: Thu, 12 Jun 2025 15:38:27 -0400 Subject: [PATCH] Rename nixos hosts to x86 and fix up flake hosts creation --- flake.nix | 49 ++++++++++--------- .../cloud/config/backups/borg.nix | 0 .../cloud/config/backups/default.nix | 0 .../cloud/config/backups/snapraid.nix | 0 hosts/{nixos => x86}/cloud/config/caddy.nix | 0 hosts/{nixos => x86}/cloud/config/default.nix | 0 .../cloud/config/filerun/compose.yml | 0 .../cloud/config/filerun/default.nix | 0 hosts/{nixos => x86}/cloud/config/nfs.nix | 0 hosts/{nixos => x86}/cloud/default.nix | 0 hosts/{nixos => x86}/cloud/hardware.nix | 0 hosts/{nixos => x86}/gojo/config/default.nix | 0 hosts/{nixos => x86}/gojo/default.nix | 1 + hosts/{nixos => x86}/gojo/hardware.fix | 0 hosts/{nixos => x86}/gojo/hardware.nix | 0 hosts/{nixos => x86}/haze/config/default.nix | 0 hosts/{nixos => x86}/haze/default.nix | 0 hosts/{nixos => x86}/haze/hardware.nix | 0 .../komo/config/authentik/compose.yaml | 0 .../komo/config/authentik/default.nix | 0 hosts/{nixos => x86}/komo/config/caddy.nix | 0 hosts/{nixos => x86}/komo/config/default.nix | 0 .../komo/config/komodo/compose.yaml | 0 .../komo/config/komodo/default.nix | 0 hosts/{nixos => x86}/komo/default.nix | 0 hosts/{nixos => x86}/komo/hardware.nix | 0 hosts/{nixos => x86}/lxc/default.nix | 0 hosts/{nixos => x86}/lxc/hardware.nix | 0 hosts/{nixos => x86}/nix/default.nix | 0 hosts/{nixos => x86}/nix/hardware.nix | 0 hosts/{nixos => x86}/proxy/config/caddy.nix | 0 .../proxy/config/cloudflared.nix | 0 hosts/{nixos => x86}/proxy/config/default.nix | 0 hosts/{nixos => x86}/proxy/config/dnsmasq.nix | 0 hosts/{nixos => x86}/proxy/default.nix | 0 hosts/{nixos => x86}/proxy/hardware.nix | 0 hosts/{nixos => x86}/rune/config/default.nix | 0 hosts/{nixos => x86}/rune/default.nix | 0 hosts/{nixos => x86}/rune/hardware.nix | 0 .../sock/config/backups/borg.nix | 0 .../sock/config/backups/default.nix | 0 hosts/{nixos => x86}/sock/config/caddy.nix | 0 hosts/{nixos => x86}/sock/config/default.nix | 0 hosts/{nixos => x86}/sock/config/komodo.nix | 0 hosts/{nixos => x86}/sock/default.nix | 0 hosts/{nixos => x86}/sock/hardware.nix | 0 hosts/{nixos => x86}/vm/default.nix | 0 hosts/{nixos => x86}/vm/hardware.nix | 0 48 files changed, 26 insertions(+), 24 deletions(-) rename hosts/{nixos => x86}/cloud/config/backups/borg.nix (100%) rename hosts/{nixos => x86}/cloud/config/backups/default.nix (100%) rename hosts/{nixos => x86}/cloud/config/backups/snapraid.nix (100%) rename hosts/{nixos => x86}/cloud/config/caddy.nix (100%) rename hosts/{nixos => x86}/cloud/config/default.nix (100%) rename hosts/{nixos => x86}/cloud/config/filerun/compose.yml (100%) rename hosts/{nixos => x86}/cloud/config/filerun/default.nix (100%) rename hosts/{nixos => x86}/cloud/config/nfs.nix (100%) rename hosts/{nixos => x86}/cloud/default.nix (100%) rename hosts/{nixos => x86}/cloud/hardware.nix (100%) rename hosts/{nixos => x86}/gojo/config/default.nix (100%) rename hosts/{nixos => x86}/gojo/default.nix (97%) rename hosts/{nixos => x86}/gojo/hardware.fix (100%) rename hosts/{nixos => x86}/gojo/hardware.nix (100%) rename hosts/{nixos => x86}/haze/config/default.nix (100%) rename hosts/{nixos => x86}/haze/default.nix (100%) rename hosts/{nixos => x86}/haze/hardware.nix (100%) rename hosts/{nixos => x86}/komo/config/authentik/compose.yaml (100%) rename hosts/{nixos => x86}/komo/config/authentik/default.nix (100%) rename hosts/{nixos => x86}/komo/config/caddy.nix (100%) rename hosts/{nixos => x86}/komo/config/default.nix (100%) rename hosts/{nixos => x86}/komo/config/komodo/compose.yaml (100%) rename hosts/{nixos => x86}/komo/config/komodo/default.nix (100%) rename hosts/{nixos => x86}/komo/default.nix (100%) rename hosts/{nixos => x86}/komo/hardware.nix (100%) rename hosts/{nixos => x86}/lxc/default.nix (100%) rename hosts/{nixos => x86}/lxc/hardware.nix (100%) rename hosts/{nixos => x86}/nix/default.nix (100%) rename hosts/{nixos => x86}/nix/hardware.nix (100%) rename hosts/{nixos => x86}/proxy/config/caddy.nix (100%) rename hosts/{nixos => x86}/proxy/config/cloudflared.nix (100%) rename hosts/{nixos => x86}/proxy/config/default.nix (100%) rename hosts/{nixos => x86}/proxy/config/dnsmasq.nix (100%) rename hosts/{nixos => x86}/proxy/default.nix (100%) rename hosts/{nixos => x86}/proxy/hardware.nix (100%) rename hosts/{nixos => x86}/rune/config/default.nix (100%) rename hosts/{nixos => x86}/rune/default.nix (100%) rename hosts/{nixos => x86}/rune/hardware.nix (100%) rename hosts/{nixos => x86}/sock/config/backups/borg.nix (100%) rename hosts/{nixos => x86}/sock/config/backups/default.nix (100%) rename hosts/{nixos => x86}/sock/config/caddy.nix (100%) rename hosts/{nixos => x86}/sock/config/default.nix (100%) rename hosts/{nixos => x86}/sock/config/komodo.nix (100%) rename hosts/{nixos => x86}/sock/default.nix (100%) rename hosts/{nixos => x86}/sock/hardware.nix (100%) rename hosts/{nixos => x86}/vm/default.nix (100%) rename hosts/{nixos => x86}/vm/hardware.nix (100%) diff --git a/flake.nix b/flake.nix index a2f6759..aef837e 100644 --- a/flake.nix +++ b/flake.nix @@ -92,54 +92,55 @@ ## Host Config ## - mkHost = host: isARM: { - ${host} = - let - func = if isARM then ARM else X86; - systemFunc = func; - in - lib.nixosSystem { + # read host-dirs under e.g. hosts/x86 or hosts/arm + readHosts = arch: lib.attrNames (builtins.readDir ./hosts/${arch}); + + # build one host, choosing folder + system by isARM flag + mkHost = + host: isARM: + let + folder = if isARM then "arm" else "x86"; + system = if isARM then ARM else X86; + in + { + "${host}" = lib.nixosSystem { specialArgs = { inherit inputs outputs isARM + system ; - system = systemFunc; - # INFO: Extend lib with lib.custom; This approach allows lib.custom to propagate into hm - lib = nixpkgs.lib.extend (self: super: { custom = import ./lib { inherit (nixpkgs) lib; }; }); + lib = nixpkgs.lib.extend ( + # INFO: Extend lib with lib.custom; This approach allows lib.custom to propagate into hm + self: super: { + custom = import ./lib { inherit (nixpkgs) lib; }; + } + ); }; modules = [ - { - #INFO: Overlay application for custom packages - nixpkgs.overlays = [ - self.overlays.default - ]; - } + { nixpkgs.overlays = [ self.overlays.default ]; } # Import secrets ./modules/global/secret-spec.nix ./secrets.nix # Host-specific configuration - ./hosts/nixos/${host} + ./hosts/${folder}/${host} ]; }; - }; + }; + # Invoke mkHost for each host config that is declared for either X86 or ARM mkHostConfigs = hosts: isARM: lib.foldl (acc: set: acc // set) { } (lib.map (host: mkHost host isARM) hosts); - readHosts = folder: lib.attrNames (builtins.readDir ./hosts/${folder}); in { overlays = import ./overlays { inherit inputs; }; + # now point at x86 *and* arm directories explicitly nixosConfigurations = - # Generate X86 configurations - (mkHostConfigs (readHosts "nixos") false) - // - # Generate ARM configurations - (mkHostConfigs (readHosts "arm") true); + (mkHostConfigs (readHosts "x86") false) // (mkHostConfigs (readHosts "arm") true); packages = forAllSystems ( system: diff --git a/hosts/nixos/cloud/config/backups/borg.nix b/hosts/x86/cloud/config/backups/borg.nix similarity index 100% rename from hosts/nixos/cloud/config/backups/borg.nix rename to hosts/x86/cloud/config/backups/borg.nix diff --git a/hosts/nixos/cloud/config/backups/default.nix b/hosts/x86/cloud/config/backups/default.nix similarity index 100% rename from hosts/nixos/cloud/config/backups/default.nix rename to hosts/x86/cloud/config/backups/default.nix diff --git a/hosts/nixos/cloud/config/backups/snapraid.nix b/hosts/x86/cloud/config/backups/snapraid.nix similarity index 100% rename from hosts/nixos/cloud/config/backups/snapraid.nix rename to hosts/x86/cloud/config/backups/snapraid.nix diff --git a/hosts/nixos/cloud/config/caddy.nix b/hosts/x86/cloud/config/caddy.nix similarity index 100% rename from hosts/nixos/cloud/config/caddy.nix rename to hosts/x86/cloud/config/caddy.nix diff --git a/hosts/nixos/cloud/config/default.nix b/hosts/x86/cloud/config/default.nix similarity index 100% rename from hosts/nixos/cloud/config/default.nix rename to hosts/x86/cloud/config/default.nix diff --git a/hosts/nixos/cloud/config/filerun/compose.yml b/hosts/x86/cloud/config/filerun/compose.yml similarity index 100% rename from hosts/nixos/cloud/config/filerun/compose.yml rename to hosts/x86/cloud/config/filerun/compose.yml diff --git a/hosts/nixos/cloud/config/filerun/default.nix b/hosts/x86/cloud/config/filerun/default.nix similarity index 100% rename from hosts/nixos/cloud/config/filerun/default.nix rename to hosts/x86/cloud/config/filerun/default.nix diff --git a/hosts/nixos/cloud/config/nfs.nix b/hosts/x86/cloud/config/nfs.nix similarity index 100% rename from hosts/nixos/cloud/config/nfs.nix rename to hosts/x86/cloud/config/nfs.nix diff --git a/hosts/nixos/cloud/default.nix b/hosts/x86/cloud/default.nix similarity index 100% rename from hosts/nixos/cloud/default.nix rename to hosts/x86/cloud/default.nix diff --git a/hosts/nixos/cloud/hardware.nix b/hosts/x86/cloud/hardware.nix similarity index 100% rename from hosts/nixos/cloud/hardware.nix rename to hosts/x86/cloud/hardware.nix diff --git a/hosts/nixos/gojo/config/default.nix b/hosts/x86/gojo/config/default.nix similarity index 100% rename from hosts/nixos/gojo/config/default.nix rename to hosts/x86/gojo/config/default.nix diff --git a/hosts/nixos/gojo/default.nix b/hosts/x86/gojo/default.nix similarity index 97% rename from hosts/nixos/gojo/default.nix rename to hosts/x86/gojo/default.nix index 414182b..c8afdd1 100644 --- a/hosts/nixos/gojo/default.nix +++ b/hosts/x86/gojo/default.nix @@ -41,6 +41,7 @@ in "hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager) "hosts/global/common/plymouth.nix" # fancy boot screen "hosts/global/common/solaar.nix" # Logitech Unifying Receiver support + "hosts/global/common/warp.nix" # Cloudflare WARP VPN ]) ]; diff --git a/hosts/nixos/gojo/hardware.fix b/hosts/x86/gojo/hardware.fix similarity index 100% rename from hosts/nixos/gojo/hardware.fix rename to hosts/x86/gojo/hardware.fix diff --git a/hosts/nixos/gojo/hardware.nix b/hosts/x86/gojo/hardware.nix similarity index 100% rename from hosts/nixos/gojo/hardware.nix rename to hosts/x86/gojo/hardware.nix diff --git a/hosts/nixos/haze/config/default.nix b/hosts/x86/haze/config/default.nix similarity index 100% rename from hosts/nixos/haze/config/default.nix rename to hosts/x86/haze/config/default.nix diff --git a/hosts/nixos/haze/default.nix b/hosts/x86/haze/default.nix similarity index 100% rename from hosts/nixos/haze/default.nix rename to hosts/x86/haze/default.nix diff --git a/hosts/nixos/haze/hardware.nix b/hosts/x86/haze/hardware.nix similarity index 100% rename from hosts/nixos/haze/hardware.nix rename to hosts/x86/haze/hardware.nix diff --git a/hosts/nixos/komo/config/authentik/compose.yaml b/hosts/x86/komo/config/authentik/compose.yaml similarity index 100% rename from hosts/nixos/komo/config/authentik/compose.yaml rename to hosts/x86/komo/config/authentik/compose.yaml diff --git a/hosts/nixos/komo/config/authentik/default.nix b/hosts/x86/komo/config/authentik/default.nix similarity index 100% rename from hosts/nixos/komo/config/authentik/default.nix rename to hosts/x86/komo/config/authentik/default.nix diff --git a/hosts/nixos/komo/config/caddy.nix b/hosts/x86/komo/config/caddy.nix similarity index 100% rename from hosts/nixos/komo/config/caddy.nix rename to hosts/x86/komo/config/caddy.nix diff --git a/hosts/nixos/komo/config/default.nix b/hosts/x86/komo/config/default.nix similarity index 100% rename from hosts/nixos/komo/config/default.nix rename to hosts/x86/komo/config/default.nix diff --git a/hosts/nixos/komo/config/komodo/compose.yaml b/hosts/x86/komo/config/komodo/compose.yaml similarity index 100% rename from hosts/nixos/komo/config/komodo/compose.yaml rename to hosts/x86/komo/config/komodo/compose.yaml diff --git a/hosts/nixos/komo/config/komodo/default.nix b/hosts/x86/komo/config/komodo/default.nix similarity index 100% rename from hosts/nixos/komo/config/komodo/default.nix rename to hosts/x86/komo/config/komodo/default.nix diff --git a/hosts/nixos/komo/default.nix b/hosts/x86/komo/default.nix similarity index 100% rename from hosts/nixos/komo/default.nix rename to hosts/x86/komo/default.nix diff --git a/hosts/nixos/komo/hardware.nix b/hosts/x86/komo/hardware.nix similarity index 100% rename from hosts/nixos/komo/hardware.nix rename to hosts/x86/komo/hardware.nix diff --git a/hosts/nixos/lxc/default.nix b/hosts/x86/lxc/default.nix similarity index 100% rename from hosts/nixos/lxc/default.nix rename to hosts/x86/lxc/default.nix diff --git a/hosts/nixos/lxc/hardware.nix b/hosts/x86/lxc/hardware.nix similarity index 100% rename from hosts/nixos/lxc/hardware.nix rename to hosts/x86/lxc/hardware.nix diff --git a/hosts/nixos/nix/default.nix b/hosts/x86/nix/default.nix similarity index 100% rename from hosts/nixos/nix/default.nix rename to hosts/x86/nix/default.nix diff --git a/hosts/nixos/nix/hardware.nix b/hosts/x86/nix/hardware.nix similarity index 100% rename from hosts/nixos/nix/hardware.nix rename to hosts/x86/nix/hardware.nix diff --git a/hosts/nixos/proxy/config/caddy.nix b/hosts/x86/proxy/config/caddy.nix similarity index 100% rename from hosts/nixos/proxy/config/caddy.nix rename to hosts/x86/proxy/config/caddy.nix diff --git a/hosts/nixos/proxy/config/cloudflared.nix b/hosts/x86/proxy/config/cloudflared.nix similarity index 100% rename from hosts/nixos/proxy/config/cloudflared.nix rename to hosts/x86/proxy/config/cloudflared.nix diff --git a/hosts/nixos/proxy/config/default.nix b/hosts/x86/proxy/config/default.nix similarity index 100% rename from hosts/nixos/proxy/config/default.nix rename to hosts/x86/proxy/config/default.nix diff --git a/hosts/nixos/proxy/config/dnsmasq.nix b/hosts/x86/proxy/config/dnsmasq.nix similarity index 100% rename from hosts/nixos/proxy/config/dnsmasq.nix rename to hosts/x86/proxy/config/dnsmasq.nix diff --git a/hosts/nixos/proxy/default.nix b/hosts/x86/proxy/default.nix similarity index 100% rename from hosts/nixos/proxy/default.nix rename to hosts/x86/proxy/default.nix diff --git a/hosts/nixos/proxy/hardware.nix b/hosts/x86/proxy/hardware.nix similarity index 100% rename from hosts/nixos/proxy/hardware.nix rename to hosts/x86/proxy/hardware.nix diff --git a/hosts/nixos/rune/config/default.nix b/hosts/x86/rune/config/default.nix similarity index 100% rename from hosts/nixos/rune/config/default.nix rename to hosts/x86/rune/config/default.nix diff --git a/hosts/nixos/rune/default.nix b/hosts/x86/rune/default.nix similarity index 100% rename from hosts/nixos/rune/default.nix rename to hosts/x86/rune/default.nix diff --git a/hosts/nixos/rune/hardware.nix b/hosts/x86/rune/hardware.nix similarity index 100% rename from hosts/nixos/rune/hardware.nix rename to hosts/x86/rune/hardware.nix diff --git a/hosts/nixos/sock/config/backups/borg.nix b/hosts/x86/sock/config/backups/borg.nix similarity index 100% rename from hosts/nixos/sock/config/backups/borg.nix rename to hosts/x86/sock/config/backups/borg.nix diff --git a/hosts/nixos/sock/config/backups/default.nix b/hosts/x86/sock/config/backups/default.nix similarity index 100% rename from hosts/nixos/sock/config/backups/default.nix rename to hosts/x86/sock/config/backups/default.nix diff --git a/hosts/nixos/sock/config/caddy.nix b/hosts/x86/sock/config/caddy.nix similarity index 100% rename from hosts/nixos/sock/config/caddy.nix rename to hosts/x86/sock/config/caddy.nix diff --git a/hosts/nixos/sock/config/default.nix b/hosts/x86/sock/config/default.nix similarity index 100% rename from hosts/nixos/sock/config/default.nix rename to hosts/x86/sock/config/default.nix diff --git a/hosts/nixos/sock/config/komodo.nix b/hosts/x86/sock/config/komodo.nix similarity index 100% rename from hosts/nixos/sock/config/komodo.nix rename to hosts/x86/sock/config/komodo.nix diff --git a/hosts/nixos/sock/default.nix b/hosts/x86/sock/default.nix similarity index 100% rename from hosts/nixos/sock/default.nix rename to hosts/x86/sock/default.nix diff --git a/hosts/nixos/sock/hardware.nix b/hosts/x86/sock/hardware.nix similarity index 100% rename from hosts/nixos/sock/hardware.nix rename to hosts/x86/sock/hardware.nix diff --git a/hosts/nixos/vm/default.nix b/hosts/x86/vm/default.nix similarity index 100% rename from hosts/nixos/vm/default.nix rename to hosts/x86/vm/default.nix diff --git a/hosts/nixos/vm/hardware.nix b/hosts/x86/vm/hardware.nix similarity index 100% rename from hosts/nixos/vm/hardware.nix rename to hosts/x86/vm/hardware.nix