{ config, lib, nodes, ... }: { nix = { # Machines to build derviations on buildMachines = with nodes; [ { hostName = "midas"; system = midas.config.nixpkgs.hostPlatform.system; supportedFeatures = midas.config.nix.settings.system-features; publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZjRk12cng5L2lVWjFtRXViZitRRjFpM0xOVHhGaGFVLzF6RlNqZG8wa0sgcm9vdEBraXR0eQo="; protocol = "ssh-ng"; sshKey = "/root/.ssh/buildkey"; maxJobs = 8; } { hostName = "kitty"; system = kitty.config.nixpkgs.hostPlatform.system; supportedFeatures = kitty.config.nix.settings.system-features; publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUlyR21zeWE1RFhLdVhPNmpOalVscllIcWs0OUtMenhNLzYwR1h0TFJMckwgcm9vdEBraXR0eQo="; protocol = "ssh-ng"; sshKey = "/root/.ssh/buildkey"; maxJobs = 8; } { hostName = "detritus"; system = detritus.config.nixpkgs.hostPlatform.system; supportedFeatures = detritus.config.nix.settings.system-features; publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSU4rR3ZMcm80RFZtbHZtWGNhc1UxZ2N0SVg5cWN0N21adEVscEI3MzVBb0wgcm9vdEBkZXRyaXR1cwo="; protocol = "ssh-ng"; sshKey = "/root/.ssh/buildkey"; maxJobs = 8; } { hostName = "elder"; system = elder.config.nixpkgs.hostPlatform.system; supportedFeatures = elder.config.nix.settings.system-features; publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZqbUo2Ymt1TzU3Z3A2R1pERWZSMU83a3JkZjV3aXFyT0JDNXB6VERsOTEgcm9vdEBlbGRlcgo="; protocol = "ssh-ng"; sshKey = "/root/.ssh/buildkey"; maxJobs = 8; } { hostName = "prophet"; system = prophet.config.nixpkgs.hostPlatform.system; supportedFeatures = prophet.config.nix.settings.system-features; publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUNycDNZL1gyQlJVRU54KzBHTVRtQjFWREE2U2l3a0dnZEpNSFNkTU1lcE0gcm9vdEBwcm9waGV0Cg=="; protocol = "ssh-ng"; sshKey = "/root/.ssh/buildkey"; maxJobs = 8; } ]; # Enable distributed builds distributedBuilds = true; settings = { # Serve derivations more efficiently, using substituters substituters = [ "ssh-ng://midas" "ssh-ng://kitty" "ssh-ng://detritus" "ssh-ng://elder" "ssh-ng://prophet" ]; trusted-public-keys = [ "midas:YpyfZyVlTlPjzcVsYBnN13EgeK95y1WXxm9h1V8tM7E=" "kitty:QLl9Do4v+2Q/fapozUGoXIKJul+Zck3yAsmAo9Lg4is=" "detritus:xtQVaIyDIBWS+EAU11dBsW9BUMT7aAZRPjKp3Udgdvc=" "elder:U+zIEvxNeqOxAWbZyrJzDNrJF1GJdcrLEYbIqmKGd7U=" "prophet:NPlWmuX1vz95uUIddQXlwrkmdSMZW1U27CdEY812brg=" ]; # Settings to sign the derivations and allow building max-jobs = if builtins.elem "server" config.system.nixos.tags then "auto" else 0; secret-key-files = "/var/lib/nixos/cache-priv-key.pem"; trusted-users = [ "root" ]; }; }; }