Make local cache configurable

This commit is contained in:
Greg Hellings
2025-05-29 10:48:46 -05:00
parent 04723ae03e
commit 24d1247a79
3 changed files with 67 additions and 53 deletions
+7 -2
View File
@@ -3,6 +3,10 @@ let
username = "gregory.hellings"; username = "gregory.hellings";
in in
{ {
greg = {
nix.cache = false;
};
homebrew = { homebrew = {
enable = true; enable = true;
brews = [ brews = [
@@ -12,7 +16,9 @@ in
name = "libvirt"; name = "libvirt";
restart_service = true; restart_service = true;
} }
"mysql"
"nushell" "nushell"
"poetry"
"qemu" "qemu"
]; ];
casks = [ casks = [
@@ -22,15 +28,14 @@ in
"chromium" "chromium"
"firefox" "firefox"
"microsoft-teams" "microsoft-teams"
"mysql"
"onlyoffice" "onlyoffice"
"pgadmin4" "pgadmin4"
"poetry"
"tabby" "tabby"
"twine" "twine"
"vagrant" "vagrant"
"visual-studio-code" "visual-studio-code"
"zed" "zed"
"zoho-workdrive"
]; ];
user = username; user = username;
}; };
-3
View File
@@ -14,9 +14,6 @@ let
[ ]; [ ];
in 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 = [ imports = [
./nix-conf.nix ./nix-conf.nix
]; ];
+60 -48
View File
@@ -1,60 +1,72 @@
{ {
pkgs, pkgs,
lib, lib,
cache, config,
... ...
}: }:
let
cfg = config.greg.nix;
in
{ {
nix = { options.greg.nix = {
gc = { cache = lib.mkOption {
automatic = true; type = lib.types.bool;
# Scheduling of them is different in nixos vs nix-darwin, so check for default = true;
# the extra details there
options = "--delete-older-than 30d";
};
package = pkgs.nixStable;
settings = {
cores = 0; # Use all cores for builds
download-buffer-size = 500 * 1024 * 1024;
experimental-features = "nix-command flakes";
keep-outputs = true;
keep-derivations = true;
min-free = (toString (1024 * 1024 * 1024));
max-free = (toString (5 * 1024 * 1024 * 1024));
trusted-users = [
"greg"
"gregory.hellings"
]; # For home and for work machines
substituters =
(lib.optionals cache [
"http://nas.thehellings.lan:9000/binary-cache/"
"http://nas.home:9000/binary-cache/"
])
++ [
"https://ai.cachix.org"
"https://nixpkgs-python.cachix.org"
"https://greg-hellings.cachix.org"
"https://nix-community.cachix.org"
"https://cache.nixos.org"
];
trusted-public-keys = [
"nix.thehellings.lan:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"nix.home:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc="
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
"greg-hellings.cachix.org-1:y01Jl/L5evlhxdnUW6n56AiI1k8g1wxWhTxJCe7XSco="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
];
}; };
}; };
nixpkgs.config = { config = {
allowUnfree = true; nix = {
allowUnfreePredicate = _: true; gc = {
permittedInsecurePackages = [ "ventoy-1.1.05" ]; automatic = true;
# Scheduling of them is different in nixos vs nix-darwin, so check for
# the extra details there
options = "--delete-older-than 30d";
};
package = pkgs.nixStable;
settings = {
cores = 0; # Use all cores for builds
download-buffer-size = 500 * 1024 * 1024;
experimental-features = "nix-command flakes";
keep-outputs = true;
keep-derivations = true;
min-free = (toString (1024 * 1024 * 1024));
max-free = (toString (5 * 1024 * 1024 * 1024));
trusted-users = [
"greg"
"gregory.hellings"
]; # For home and for work machines
substituters =
(lib.optionals cfg.cache [
"http://nas.thehellings.lan:9000/binary-cache/"
"http://nas.home:9000/binary-cache/"
])
++ [
"https://ai.cachix.org"
"https://nixpkgs-python.cachix.org"
"https://greg-hellings.cachix.org"
"https://nix-community.cachix.org"
"https://cache.nixos.org"
];
trusted-public-keys = [
"nix.thehellings.lan:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"nix.home:0qWYHn3gGllXChhAaaxKlNZtRy6yG/XJs1RFSqV3nW8="
"ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc="
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
"greg-hellings.cachix.org-1:y01Jl/L5evlhxdnUW6n56AiI1k8g1wxWhTxJCe7XSco="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
];
};
};
nixpkgs.config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
permittedInsecurePackages = [ "ventoy-1.1.05" ];
};
}; };
} }