athens/nix/deploy.nix

40 lines
981 B
Nix

{ self, nixpkgs, deploy-rs, ... }:
let
mkDeploy = hostName:
let
inherit (self.hosts.${hostName}) type address system sshUser;
pkgs = import nixpkgs { inherit system; };
deployPkgs = import nixpkgs {
inherit system;
overlays = [
deploy-rs.overlays.default
(_self: super: {
deploy-rs = {
inherit (pkgs) deploy-rs; inherit (super.deploy-rs) lib;
};
})
];
};
inherit (deployPkgs.deploy-rs.lib) activate;
in
{
hostname = address;
profiles.system = {
user = "root";
inherit sshUser;
path = activate.${type} self."${type}Configurations".${hostName};
};
};
in
{
nodes = {
socrates = mkDeploy "socrates";
plato = mkDeploy "plato";
agent = mkDeploy "agent";
form = mkDeploy "form";
matter = mkDeploy "matter";
purpose = mkDeploy "purpose";
epicurus = mkDeploy "epicurus";
};
}