old
 1{
 2  den,
 3  inputs,
 4  self,
 5  lib,
 6  ...
 7}: let
 8  # TODO: Standalone Home Manager deploy profile
 9  allHosts = lib.mergeAttrsList (lib.attrValues den.hosts);
10  deployableHosts =
11    lib.filterAttrs
12    (
13      n: v:
14        v.hasAspect den.aspects.core.openssh.access
15        && !(v.hasAspect den.aspects.core.installer)
16    )
17    allHosts;
18in {
19  flake-file.inputs.deploy-rs = {
20    url = "github:serokell/deploy-rs";
21    inputs.nixpkgs.follows = "nixpkgs";
22    inputs.flake-compat.follows = "flake-compat";
23  };
24
25  flake.deploy.nodes =
26    lib.mapAttrs (name: host: {
27      hostname = host.hostName;
28      profilesOrder = ["system"];
29      profiles.system = {
30        path =
31          inputs.deploy-rs.lib.${host.system}.activate.${host.class}
32          self."${host.class}Configurations".${name};
33        sshUser = "root";
34        user = "root";
35      };
36    })
37    deployableHosts;
38
39  flake.checks =
40    builtins.mapAttrs (
41      system: deployLib: deployLib.deployChecks self.deploy
42    )
43    inputs.deploy-rs.lib;
44
45  den.schema.flake-parts.includes = [
46    {
47      devshell = {system, ...}: {
48        commands = [
49          {
50            name = "deploy";
51            package = inputs.deploy-rs.packages.${system}.deploy-rs;
52            help = "Deploy profiles to remote servers";
53          }
54        ];
55      };
56    }
57  ];
58}