1 { config, pkgs, lib, inputs, ... }:
 
   4   boot.cleanTmpDir = mkDefault true;
 
   5   boot.tmpOnTmpfs = mkDefault true;
 
   6   services.logrotate.enable = true;
 
   7   # NOTE: mostly useless on a server, and CPU intensive.
 
   9     enable = mkDefault true;
 
  10     dev.enable = mkDefault false;
 
  11     doc.enable = mkDefault true;
 
  12     info.enable = mkDefault false;
 
  13     man.enable = mkDefault true;
 
  14     nixos.enable = mkDefault false;
 
  16   environment.variables = {
 
  18     NIXPKGS_CONFIG = mkForce "";
 
  20     SYSTEMD_LESS = "FKMRX";
 
  21     # Setting TZ= avoids a lot of useless syscalls reading /etc/localtime
 
  22     # but requires to restart the session to change the time zone for all programs.
 
  23     TZ = config.time.timeZone;
 
  25   home-manager.users.root = {
 
  27       ../../home-manager/options.nix
 
  28       ../../home-manager/profiles/essential.nix
 
  31   systemd.services.home-manager-root.postStart = ''
 
  32     ${pkgs.nix}/bin/nix-env --delete-generations +1 --profile /nix/var/nix/profiles/per-user/root/home-manager
 
  35     settings.auto-optimise-store = mkDefault true;
 
  36     gc.automatic = mkDefault true;
 
  37     gc.dates = mkDefault "weekly";
 
  38     gc.options = mkDefault "--delete-older-than 7d";
 
  39     nixPath = mkForce [ ];
 
  40     registry.nixpkgs = mkDefault { flake = inputs.nixpkgs; };
 
  41     package = pkgs.nixFlakes;
 
  42     extraOptions = "experimental-features = nix-command flakes";
 
  44   security.lockKernelModules = false;
 
  48       MaxRetentionSec=1month
 
  54     system.nixos.versionSuffix = ".${
 
  55     substring 0 8 (inputs.self.lastModifiedDate or inputs.self.lastModified)}.${
 
  56     inputs.self.shortRev or "dirty"}";
 
  57     system.nixos.revision = mkIf (inputs.self ? rev) inputs.self.rev;
 
  59   # Let 'nixos-version --json' know about the Git revision of this flake.
 
  60   system.configurationRevision = mkIf (inputs.self ? rev) inputs.self.rev;
 
  62     system.configurationRevision =
 
  65     else throw "Refusing to build from a dirty Git tree!";
 
  67   users.mutableUsers = false;