{ config, inputs, pkgs, ... }: { imports = [ ../../shared/known-hosts.nix ../../shared/nix-daemon.nix ./armv7l.nix ./builder.nix ./security.nix ./sops-nix.nix ./telegraf.nix ./update.nix ./users.nix inputs.srvos.nixosModules.server ]; # Hard-link duplicated files nix.settings.auto-optimise-store = true; nix.optimise.automatic = false; # Sometimes it fails if a store path is still in use. # This should fix intermediate issues. systemd.services.nix-gc.serviceConfig = { Restart = "on-failure"; }; boot.kernelPackages = pkgs.lib.mkIf ( !config.boot.supportedFilesystems.zfs or false ) pkgs.linuxPackages_latest; zramSwap.enable = true; zramSwap.memoryPercent = 100; systemd.services.sysctl-after-boot = { serviceConfig.Restart = "on-failure"; serviceConfig.Type = "oneshot"; path = [ pkgs.procps ]; script = '' sysctl -w kernel.hardlockup_panic=1 sysctl -w kernel.hung_task_panic=1 sysctl -w kernel.panic_on_oops=1 sysctl -w kernel.panic=60 sysctl -w kernel.softlockup_panic=1 ''; }; systemd.timers.sysctl-after-boot = { wantedBy = [ "timers.target" ]; timerConfig.OnBootSec = "5m"; }; # https://github.com/NixOS/nixpkgs/pull/268121 # https://wiki.archlinux.org/title/Zram#Optimizing_swap_on_zram boot.kernel.sysctl = { "vm.page-cluster" = 0; "vm.swappiness" = 180; "vm.watermark_boost_factor" = 0; "vm.watermark_scale_factor" = 125; }; security.acme.defaults.email = "trash@nix-community.org"; security.acme.acceptTerms = true; networking.domain = "nix-community.org"; }