boot changes
This commit is contained in:
parent
21ddbd068e
commit
77f6dc8d5f
169
common.nix
169
common.nix
@ -7,87 +7,92 @@ all: {
|
|||||||
}: {
|
}: {
|
||||||
imports = [all];
|
imports = [all];
|
||||||
|
|
||||||
config = {
|
boot.loader = {
|
||||||
services.haveged.enable = lib.mkDefault true;
|
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||||
|
systemd-boot.editor = lib.mkDefault false;
|
||||||
security.rtkit.enable = lib.mkDefault true;
|
# having a user makes sure `superusers=""` gets set, which prevents editing like the above
|
||||||
|
grub.users.grubby = {};
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault true;
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault true;
|
|
||||||
|
|
||||||
services.earlyoom.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
programs.mosh.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
systemd.services.nix-gc.serviceConfig.IOSchedulingPriority =
|
|
||||||
lib.mkDefault 7;
|
|
||||||
systemd.services.nix-gc.serviceConfig.IOSchedulingClass =
|
|
||||||
lib.mkDefault "idle";
|
|
||||||
systemd.services.nix-gc.serviceConfig.CPUSchedulingPolicy =
|
|
||||||
lib.mkDefault "idle";
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
gc = {
|
|
||||||
automatic = lib.mkDefault true;
|
|
||||||
dates = lib.mkDefault "20:00";
|
|
||||||
options = lib.mkDefault "--delete-older-than 40d";
|
|
||||||
};
|
|
||||||
|
|
||||||
daemonIOSchedPriority = lib.mkDefault 7;
|
|
||||||
daemonIOSchedClass = lib.mkDefault "idle";
|
|
||||||
daemonCPUSchedPolicy = lib.mkDefault "idle";
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
trusted-users = ["root" "builder" "@wheel"];
|
|
||||||
builders-use-substitutes = true;
|
|
||||||
experimental-features = ["nix-command" "flakes" "repl-flake"];
|
|
||||||
keep-outputs = true;
|
|
||||||
keep-derivations = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# make nginx have good logging and defaults
|
|
||||||
services.nginx = {
|
|
||||||
recommendedGzipSettings = lib.mkDefault true;
|
|
||||||
recommendedOptimisation = lib.mkDefault true;
|
|
||||||
recommendedProxySettings = lib.mkDefault true;
|
|
||||||
appendHttpConfig = ''
|
|
||||||
error_log stderr;
|
|
||||||
access_log syslog:server=unix:/dev/log combined;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# set some basic system props
|
|
||||||
security.sudo.wheelNeedsPassword = lib.mkDefault false;
|
|
||||||
networking.networkmanager.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
# package list
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
exfat
|
|
||||||
|
|
||||||
# to stop NixOS breaking
|
|
||||||
git
|
|
||||||
];
|
|
||||||
|
|
||||||
services.openssh = {
|
|
||||||
# Allow ssh
|
|
||||||
enable = lib.mkDefault true;
|
|
||||||
# lol no
|
|
||||||
permitRootLogin = lib.mkDefault "no";
|
|
||||||
passwordAuthentication = lib.mkDefault false;
|
|
||||||
# allow reverse ssh port shit to be public sometimes
|
|
||||||
gatewayPorts = lib.mkDefault "clientspecified";
|
|
||||||
extraConfig = ''
|
|
||||||
StreamLocalBindUnlink yes
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use a firewall
|
|
||||||
networking.firewall.enable = lib.mkDefault true;
|
|
||||||
networking.firewall.allowPing = true;
|
|
||||||
networking.firewall.allowedTCPPorts = lib.mkDefault [22];
|
|
||||||
|
|
||||||
programs.fish.enable = lib.mkDefault true;
|
|
||||||
users.defaultUserShell = lib.mkOverride 900 pkgs.fish;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.haveged.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
security.rtkit.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault true;
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault true;
|
||||||
|
|
||||||
|
services.earlyoom.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
programs.mosh.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
systemd.services.nix-gc.serviceConfig.IOSchedulingPriority =
|
||||||
|
lib.mkDefault 7;
|
||||||
|
systemd.services.nix-gc.serviceConfig.IOSchedulingClass =
|
||||||
|
lib.mkDefault "idle";
|
||||||
|
systemd.services.nix-gc.serviceConfig.CPUSchedulingPolicy =
|
||||||
|
lib.mkDefault "idle";
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
gc = {
|
||||||
|
automatic = lib.mkDefault true;
|
||||||
|
dates = lib.mkDefault "20:00";
|
||||||
|
options = lib.mkDefault "--delete-older-than 40d";
|
||||||
|
};
|
||||||
|
|
||||||
|
daemonIOSchedPriority = lib.mkDefault 7;
|
||||||
|
daemonIOSchedClass = lib.mkDefault "idle";
|
||||||
|
daemonCPUSchedPolicy = lib.mkDefault "idle";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
trusted-users = ["root" "builder" "@wheel"];
|
||||||
|
builders-use-substitutes = true;
|
||||||
|
experimental-features = ["nix-command" "flakes" "repl-flake"];
|
||||||
|
keep-outputs = true;
|
||||||
|
keep-derivations = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# make nginx have good logging and defaults
|
||||||
|
services.nginx = {
|
||||||
|
recommendedGzipSettings = lib.mkDefault true;
|
||||||
|
recommendedOptimisation = lib.mkDefault true;
|
||||||
|
recommendedProxySettings = lib.mkDefault true;
|
||||||
|
appendHttpConfig = ''
|
||||||
|
error_log stderr;
|
||||||
|
access_log syslog:server=unix:/dev/log combined;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# set some basic system props
|
||||||
|
security.sudo.wheelNeedsPassword = lib.mkDefault false;
|
||||||
|
networking.networkmanager.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# package list
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
exfat
|
||||||
|
|
||||||
|
# to stop NixOS breaking
|
||||||
|
git
|
||||||
|
];
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
# Allow ssh
|
||||||
|
enable = lib.mkDefault true;
|
||||||
|
# lol no
|
||||||
|
permitRootLogin = lib.mkDefault "no";
|
||||||
|
passwordAuthentication = lib.mkDefault false;
|
||||||
|
# allow reverse ssh port shit to be public sometimes
|
||||||
|
gatewayPorts = lib.mkDefault "clientspecified";
|
||||||
|
extraConfig = ''
|
||||||
|
StreamLocalBindUnlink yes
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Use a firewall
|
||||||
|
networking.firewall.enable = lib.mkDefault true;
|
||||||
|
networking.firewall.allowPing = true;
|
||||||
|
networking.firewall.allowedTCPPorts = lib.mkDefault [22];
|
||||||
|
|
||||||
|
programs.fish.enable = lib.mkDefault true;
|
||||||
|
users.defaultUserShell = lib.mkOverride 900 pkgs.fish;
|
||||||
}
|
}
|
||||||
|
@ -23,12 +23,34 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
boot.plymouth.enable = lib.mkDefault true;
|
|
||||||
# as soon as this stops breaking _all_ my machines
|
|
||||||
boot.initrd.systemd.enable = lib.mkDefault false;
|
|
||||||
# until https://github.com/NixOS/nixpkgs/pull/199784 is merged
|
# until https://github.com/NixOS/nixpkgs/pull/199784 is merged
|
||||||
systemd.services.plymouth-start.restartIfChanged = false;
|
systemd.services.plymouth-start.restartIfChanged = false;
|
||||||
|
|
||||||
|
console = {
|
||||||
|
earlySetup = lib.mkDefault false;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
consoleLogLevel = lib.mkDefault 0;
|
||||||
|
initrd.verbose = lib.mkDefault false;
|
||||||
|
plymouth.enable = lib.mkDefault true;
|
||||||
|
kernelParams = [
|
||||||
|
"quiet"
|
||||||
|
"loglevel=3"
|
||||||
|
"rd.systemd.show_status=no"
|
||||||
|
"rd.udev.log_level=3"
|
||||||
|
"udev.log_priority=3"
|
||||||
|
"vt.global_cursor_default=0"
|
||||||
|
];
|
||||||
|
|
||||||
|
loader.timeout = 0;
|
||||||
|
|
||||||
|
kernel.sysctl = {
|
||||||
|
# lol anti-cheat
|
||||||
|
"abi.vsyscall32" = lib.mkDefault 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
nssmdns = lib.mkDefault true;
|
nssmdns = lib.mkDefault true;
|
||||||
@ -276,13 +298,6 @@ in {
|
|||||||
services.dbus.enable = lib.mkDefault true;
|
services.dbus.enable = lib.mkDefault true;
|
||||||
services.dbus.packages = with pkgs; [dconf];
|
services.dbus.packages = with pkgs; [dconf];
|
||||||
|
|
||||||
boot.kernel.sysctl = {
|
|
||||||
# better default swap
|
|
||||||
"vm.swappiness" = lib.mkDefault 45;
|
|
||||||
# lol anti-cheat
|
|
||||||
"abi.vsyscall32" = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
# self explanatory
|
# self explanatory
|
||||||
fuckingprint.enable = lib.mkDefault true;
|
fuckingprint.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user