2024-04-14 11:35:47 +02:00
|
|
|
|
{ config, pkgs, ... }:
|
2022-08-16 14:20:36 +02:00
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
imports =
|
2022-09-06 17:16:31 +02:00
|
|
|
|
[
|
2022-08-16 14:20:36 +02:00
|
|
|
|
./hardware-configuration.nix
|
2022-12-09 16:18:57 +01:00
|
|
|
|
./network.nix
|
2022-08-16 14:20:36 +02:00
|
|
|
|
];
|
|
|
|
|
|
2024-04-14 11:35:47 +02:00
|
|
|
|
boot.loader.systemd-boot = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extraInstallCommands = ''
|
|
|
|
|
${pkgs.coreutils}/bin/cp -r /boot/* /boot2
|
|
|
|
|
'';
|
|
|
|
|
};
|
2024-03-28 18:06:41 +01:00
|
|
|
|
# boot.kernelParams = [ "video=VGA-1:1024x768@30" ];
|
2022-08-16 14:20:36 +02:00
|
|
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
2024-03-28 18:06:41 +01:00
|
|
|
|
boot.supportedFilesystems = [ "zfs" ];
|
2024-04-29 14:26:49 +02:00
|
|
|
|
# boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
|
|
|
|
# Pin Kernel Version as 6.6.28 has a broken networking driver
|
|
|
|
|
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_6.override {
|
|
|
|
|
argsOverride = rec {
|
|
|
|
|
src = pkgs.fetchurl {
|
2024-05-06 11:12:19 +02:00
|
|
|
|
url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
|
|
|
|
|
sha256 = "sha256-Y55QBg48jyPtAXyxDP6sxrqI/1WDgSu3aFm0zGoSgpE=";
|
2024-04-29 14:26:49 +02:00
|
|
|
|
};
|
|
|
|
|
version = "6.6.27";
|
|
|
|
|
modDirVersion = "6.6.27";
|
2024-05-06 11:12:19 +02:00
|
|
|
|
};
|
2024-04-29 14:26:49 +02:00
|
|
|
|
});
|
2022-08-16 14:20:36 +02:00
|
|
|
|
|
2024-04-01 16:12:53 +02:00
|
|
|
|
services.zfs = {
|
|
|
|
|
trim.enable = true;
|
|
|
|
|
autoScrub.enable = true;
|
|
|
|
|
};
|
|
|
|
|
|
2022-08-16 14:20:36 +02:00
|
|
|
|
# Set your time zone.
|
|
|
|
|
time.timeZone = "Europe/Berlin";
|
2023-11-28 11:37:35 +01:00
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
2022-08-16 14:20:36 +02:00
|
|
|
|
|
2024-03-03 11:34:39 +01:00
|
|
|
|
# prevent fork bombs
|
|
|
|
|
security.pam.loginLimits = [
|
|
|
|
|
{
|
|
|
|
|
domain = "@users";
|
|
|
|
|
item = "nproc";
|
|
|
|
|
type = "hard";
|
|
|
|
|
value = "2000";
|
|
|
|
|
}
|
2024-03-03 11:39:52 +01:00
|
|
|
|
{
|
|
|
|
|
domain = "@nixbld";
|
|
|
|
|
item = "nproc";
|
|
|
|
|
type = "hard";
|
|
|
|
|
value = "10000";
|
|
|
|
|
}
|
2024-03-03 11:34:39 +01:00
|
|
|
|
];
|
2022-09-06 17:16:31 +02:00
|
|
|
|
|
2024-02-25 21:52:36 +01:00
|
|
|
|
systemd = {
|
|
|
|
|
services.nix-daemon.serviceConfig = {
|
|
|
|
|
MemoryMax = "32G";
|
|
|
|
|
};
|
|
|
|
|
# all users together may not use more than $MemoryMax of RAM
|
|
|
|
|
slices."user".sliceConfig = {
|
|
|
|
|
MemoryMax = "32G";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2022-08-16 14:20:36 +02:00
|
|
|
|
# This value determines the NixOS release from which the default
|
|
|
|
|
# settings for stateful data, like file locations and database versions
|
|
|
|
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
|
|
|
# this value at the release version of the first install of this system.
|
|
|
|
|
# Before changing this value read the documentation for this option
|
|
|
|
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
2023-07-26 16:41:55 +02:00
|
|
|
|
system.stateVersion = "23.05"; # Did you read the comment?
|
2022-08-16 14:20:36 +02:00
|
|
|
|
}
|
|
|
|
|
|