{ pkgs, lib, self, ... }: let builderHosts = if self != null then (lib.attrNames ( lib.filterAttrs (_: v: v.config.greg.remote-builder.enable) self.nixosConfigurations )) else [ ]; in { # This is a dumb hack to pass the value into the import below, but it's how we have to do it, # since that's how the module system works _module.args.cache = true; imports = [ ./nix-conf.nix ]; programs.ssh = { knownHosts = { chronicles = { extraHostNames = [ "chronicles.thehellings.lan" "chronicles.home" "nas" "nas.thehellings.lan" "nas.home" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS"; }; dns = { extraHostNames = [ "dns" "dns.me.ts" "dns.home" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRCXdhXWHEvw84V9JC5bAGovvj12DLVphcEnsTHDjxW"; }; "genesis" = { extraHostNames = [ "genesis.shire-zebra.ts.net" "genesis.home" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEI9jbTPmEWQ0F2bLYmnIOLmBnag1fkKxHRjz3X8lB/k"; }; "git" = { extraHostNames = [ "git.home" "git.thehellings.lan" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC7hesFWwlmSbWPJWUiF8fIppy5a83yXw84O0Ytz+Zyq"; }; hosea = { extraHostNames = [ "hosea.home" "hosea.thehellings.lan" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz"; }; isaiah = { extraHostNames = [ "isaiah.home" "isaiah.thehellings.lan" "isaiah-builder" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHleYKtfV4W1Z63Ysu9w5Rbglqlz4F92YcZoMkucoTNf"; }; jeremiah = { extraHostNames = [ "jeremiah.home" "jeremiah.thehellings.lan" "jeremiah-builder" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0"; }; jude = { extraHostNames = [ "jude.home" "jude.thehellings.lan" "jude-builder" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0"; }; linode = { extraHostNames = [ "linode.home" "linode.thehellings.lan" "thehellings.com" ]; publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q"; }; }; extraConfig = builtins.concatStringsSep "\n" ( lib.map (x: '' Host ${x}-builder Hostname ${x}.home User remote-builder-user '') builderHosts ); }; # Base packages that need to be in all my hosts environment.systemPackages = with pkgs; [ agenix bmon diffutils git gnupatch gregpy findutils file hms # My own home manager switcher btop iperf killall nano pciutils pwgen unzip wget ]; }