64 lines
1.4 KiB
Nix
64 lines
1.4 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
hostType,
|
|
...
|
|
}:
|
|
|
|
{
|
|
config = lib.mkMerge [
|
|
# Common configuration
|
|
{
|
|
nix = {
|
|
settings = {
|
|
auto-optimise-store = true;
|
|
connect-timeout = 10;
|
|
log-lines = 25;
|
|
min-free = 128000000;
|
|
max-free = 1000000000;
|
|
trusted-users = [ "@wheel" ];
|
|
};
|
|
extraOptions = "experimental-features = nix-command flakes";
|
|
gc = {
|
|
automatic = true;
|
|
options = "--delete-older-than 8d";
|
|
};
|
|
};
|
|
|
|
nixpkgs.config = {
|
|
allowUnfree = true;
|
|
enableParallelBuilding = true;
|
|
buildManPages = false;
|
|
buildDocs = false;
|
|
};
|
|
|
|
system.stateVersion = "22.11";
|
|
}
|
|
|
|
# Server specific configuration
|
|
(lib.mkIf hostType.isServer {
|
|
environment.etc."channels/nixpkgs".source = inputs.nixpkgs-stable.outPath;
|
|
|
|
nix = {
|
|
registry.nixpkgs.flake = inputs.nixpkgs-stable;
|
|
nixPath = [
|
|
"nixpkgs=/etc/channels/nixpkgs"
|
|
"/nix/var/nix/profiles/per-user/root/channels"
|
|
];
|
|
};
|
|
})
|
|
|
|
# Workstation specific configuration
|
|
(lib.mkIf hostType.isWorkstation {
|
|
environment.etc."channels/nixpkgs".source = inputs.nixpkgs.outPath;
|
|
|
|
nix = {
|
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
nixPath = [
|
|
"nixpkgs=${inputs.nixpkgs}"
|
|
"/nix/var/nix/profiles/per-user/root/channels"
|
|
];
|
|
};
|
|
})
|
|
];
|
|
}
|