Implement distributed builder

This commit is contained in:
2024-01-06 22:51:49 +01:00
parent b49b6263d3
commit 619d3f9a45
2 changed files with 62 additions and 13 deletions

View File

@ -18,6 +18,24 @@ in rec {
users.julian = import ./home.nix;
};
nix.buildMachines = [ {
hostName = "192.168.3.118";
system = "x86_64-linux";
protocol = "ssh";
# if the builder supports building for multiple architectures,
# replace the previous line by, e.g.
# systems = ["x86_64-linux" "aarch64-linux"];
maxJobs = 4;
speedFactor = 3;
supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
mandatoryFeatures = [ ];
}] ;
nix.distributedBuilds = true;
# optional, useful when the builder has a faster internet connection than yours
nix.extraOptions = ''
builders-use-substitutes = true
'';
# Bootloader
# Use this for simple nix boot menu, if no dual boot required
boot.loader.systemd-boot.enable = true;
@ -62,6 +80,17 @@ in rec {
nix.settings.auto-optimise-store = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Setup binary caches
nix.settings = {
substituters = [
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
@ -201,6 +230,9 @@ in rec {
services.flatpak.enable = true;
# Smart card reader
services.pcscd.enable = true;
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
@ -212,8 +244,20 @@ in rec {
# $ nix search wget
environment.systemPackages = with pkgs; [
# rfid reader tests
openct
opensc
pcsclite
pcsctools
ccid
libnfc
xournalpp
path-of-building
xfce.thunar-archive-plugin
zip
p7zip
imagemagick
(pkgs.python3.withPackages python-packages)
firefox
@ -317,10 +361,11 @@ in rec {
xclip
okular # Pdf reader with many features, good for commenting documents
evince # Simple pdf reader, good for focusing on document content
pdfsam-basic # Split, merge, etc for pdfs
poppler_utils # Pdf utils including pdfimages
matlab # Using nix-matlab overlay defined in flake
sage
# sage
gimp
@ -340,6 +385,10 @@ in rec {
calibre
audible-cli
cudaPackages.cudatoolkit
openmvg
colmapWithCuda
];
nixpkgs.overlays = [