{ inputs, ... }: { flake = { config, lib, ... }: let domain = "mesh.vimium.net"; mkDeployNode = hostName: { hostname = "${hostName}.${domain}"; profiles.system = { user = "root"; path = inputs.deploy-rs.lib.${ config.nixosConfigurations.${hostName}.config.system.build.toplevel.system }.activate.nixos config.nixosConfigurations.${hostName}; }; }; in { nixosConfigurations = lib.pipe ../hosts [ builtins.readDir (lib.filterAttrs (name: value: value == "directory")) (lib.mapAttrs ( name: value: inputs.nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ { networking = { inherit domain; hostName = name; }; } ../hosts/${name} ]; } )) ]; deploy = { magicRollback = true; autoRollback = true; sshUser = "root"; nodes = lib.genAttrs [ "artemis" "mail" "pi" "skycam" "vps1" "vps2" ] mkDeployNode; }; }; }