From 9f9a4d037744d3d2965270722b5e9c588c93839a Mon Sep 17 00:00:00 2001 From: Henri Dohmen Date: Tue, 13 Jan 2026 18:34:48 +0100 Subject: [PATCH] use colmena apply-local --- flake.nix | 78 ++++++++++++++++++++++++++++++----------- mod/desktop/network.nix | 2 +- 2 files changed, 58 insertions(+), 22 deletions(-) diff --git a/flake.nix b/flake.nix index fb94502..a9a2e27 100644 --- a/flake.nix +++ b/flake.nix @@ -65,27 +65,51 @@ secrets = lib'.walk-dir ./secrets; }; - mkDesktop = - host: - nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = specialArgs // { - inherit host; - }; - modules = [ - (./host + "/${host}") - ./home + mkModule = + { + entry, + isServer ? false, + }: + { + imports = [ + entry ./mod - ]; + ] + ++ (if isServer then [ ] else [ ./home ]); }; + + # Not exposed as flake outputs because they depend on specialArgs + # if you add a host, make sure to add it to var/default.nix as well + nixosModules = { + "solo" = mkModule { entry = ./host/solo; }; + "c2" = mkModule { entry = ./host/c2; }; + "fw" = mkModule { entry = ./host/fw; }; + "roam" = mkModule { + entry = ./host/roam; + isServer = true; + }; + }; + in { - nixosConfigurations = { - # if you add a host, make sure to add it to var/default.nix as well - "solo" = mkDesktop "solo"; - "c2" = mkDesktop "c2"; - "fw" = mkDesktop "fw"; - }; + nixosConfigurations = + let + mkDesktop = host: { + name = host; + value = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + inherit specialArgs; + modules = [ (nixosModules.${host}) ]; + }; + }; + in + lib.listToAttrs ( + map mkDesktop [ + "solo" + "c2" + "fw" + ] + ); colmenaHive = colmena.lib.makeHive { meta = { @@ -99,10 +123,22 @@ targetHost = "185.163.117.158"; buildOnTarget = true; }; - imports = [ - ./host/roam - ./mod - ]; + imports = [ nixosModules."roam" ]; + }; + "solo" = { + deployment.targetHost = null; + deployment.allowLocalDeployment = true; + imports = [ nixosModules."solo" ]; + }; + "c2" = { + deployment.targetHost = null; + deployment.allowLocalDeployment = true; + imports = [ nixosModules."c2" ]; + }; + "fw" = { + deployment.targetHost = null; + deployment.allowLocalDeployment = true; + imports = [ nixosModules."fw" ]; }; }; } diff --git a/mod/desktop/network.nix b/mod/desktop/network.nix index 1056165..cd4cc32 100644 --- a/mod/desktop/network.nix +++ b/mod/desktop/network.nix @@ -32,7 +32,7 @@ in wg-quick = { interfaces = { "onet" = { - address = var.wg.wireguard-network.${host}.ips; + address = var.wg.wireguard-network.${config.networking.hostName}.ips; privateKeyFile = var.wg.keyFile; peers = [ (lib.removeAttrs var.wg.wireguard-network."roam" [ "ips" ]) ]; mtu = 1248;