feat: Unify all of the nixos substituters
Some checks failed
Flake checker / Build Nix targets (push) Has been cancelled

This commit is contained in:
2026-02-04 23:33:40 +05:30
parent e07d6a44a3
commit 768caf9882
4 changed files with 64 additions and 31 deletions

View File

@@ -0,0 +1,50 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.nix.substituters;
in {
options.nix.substituters = {
enableCuda = mkOption {
type = types.bool;
default = false;
description = "Enable NixOS CUDA cache";
};
enableLlamaCpp = mkOption {
type = types.bool;
default = false;
description = "Enable llama-cpp cache";
};
};
config = {
nix.settings = {
trusted-substituters =
[
"https://nix-community.cachix.org"
"https://nixos-raspberrypi.cachix.org"
]
++ optionals cfg.enableLlamaCpp [
"https://llama-cpp.cachix.org"
]
++ optionals cfg.enableCuda [
"https://cache.nixos-cuda.org"
];
trusted-public-keys =
[
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
]
++ optionals cfg.enableLlamaCpp [
"llama-cpp.cachix.org-1:H75X+w83wUKTIPSO1KWy9ADUrzThyGs8P5tmAbkWhQc="
]
++ optionals cfg.enableCuda [
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
];
};
};
}

View File

@@ -12,6 +12,7 @@
./apps ./apps
./vms ./vms
./games ./games
../../modules/nixos/substituters.nix
]; ];
security.tpm2 = { security.tpm2 = {
@@ -46,18 +47,6 @@
auto-optimise-store = true; auto-optimise-store = true;
extra-experimental-features = "nix-command flakes auto-allocate-uids"; extra-experimental-features = "nix-command flakes auto-allocate-uids";
trusted-users = [device.user]; trusted-users = [device.user];
trusted-substituters = [
"https://nix-community.cachix.org"
"https://nixos-raspberrypi.cachix.org"
"https://llama-cpp.cachix.org"
"https://cuda-maintainers.cachix.org"
];
trusted-public-keys = [
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
"llama-cpp.cachix.org-1:H75X+w83wUKTIPSO1KWy9ADUrzThyGs8P5tmAbkWhQc="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
];
}; };
extraOptions = '' extraOptions = ''
build-users-group = nixbld build-users-group = nixbld
@@ -76,6 +65,11 @@
# ../../builders/tsuba.nix # ../../builders/tsuba.nix
]; ];
distributedBuilds = true; distributedBuilds = true;
# Enable CUDA and llama-cpp caches
substituters = {
enableCuda = true;
enableLlamaCpp = true;
};
}; };
users.users.${device.user} = { users.users.${device.user} = {

View File

@@ -9,6 +9,7 @@
./services ./services
./tako.nix ./tako.nix
# ./docker.nix # ./docker.nix
../../modules/nixos/substituters.nix
]; ];
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
@@ -35,7 +36,6 @@
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
nix = { nix = {
settings = { settings = {
max-jobs = 1; max-jobs = 1;
@@ -43,16 +43,6 @@
auto-optimise-store = true; auto-optimise-store = true;
extra-experimental-features = "nix-command flakes auto-allocate-uids"; extra-experimental-features = "nix-command flakes auto-allocate-uids";
trusted-users = [device.user "remotebuilder"]; trusted-users = [device.user "remotebuilder"];
trusted-substituters = [
"https://nix-community.cachix.org"
"https://nixos-raspberrypi.cachix.org"
# "https://sh.darksailor.dev"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
# "tako:bcVPoFGBZ0i7JAKMXIqLj2GY3CulLC4kP7rQyqes1RM="
];
}; };
extraOptions = '' extraOptions = ''
build-users-group = nixbld build-users-group = nixbld
@@ -67,6 +57,9 @@
}; };
package = pkgs.nixVersions.nix_2_32; # deploy-rs doesn't work with nix >= 2.32 package = pkgs.nixVersions.nix_2_32; # deploy-rs doesn't work with nix >= 2.32
distributedBuilds = true; distributedBuilds = true;
substituters = {
enableCuda = true;
};
}; };
users.users.${device.user} = { users.users.${device.user} = {

View File

@@ -5,6 +5,10 @@
device, device,
... ...
}: { }: {
imports = [
../../modules/nixos/substituters.nix
];
users.extraUsers.servius.extraGroups = ["docker"]; users.extraUsers.servius.extraGroups = ["docker"];
networking.firewall.enable = false; networking.firewall.enable = false;
services.openssh.enable = true; services.openssh.enable = true;
@@ -16,14 +20,6 @@
auto-optimise-store = true; auto-optimise-store = true;
extra-experimental-features = "nix-command flakes auto-allocate-uids"; extra-experimental-features = "nix-command flakes auto-allocate-uids";
trusted-users = ["root" "remotebuilder" device.user]; trusted-users = ["root" "remotebuilder" device.user];
trusted-substituters = [
"https://nix-community.cachix.org"
"https://nixos-raspberrypi.cachix.org"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
];
}; };
extraOptions = '' extraOptions = ''
build-users-group = nixbld build-users-group = nixbld