summary refs log tree commit diff
path: root/modules/base-server.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/base-server.nix')
-rwxr-xr-xmodules/base-server.nix54
1 files changed, 53 insertions, 1 deletions
diff --git a/modules/base-server.nix b/modules/base-server.nix
index d577306..76f5947 100755
--- a/modules/base-server.nix
+++ b/modules/base-server.nix
@@ -7,6 +7,56 @@
        ./users/chris.nix
     ];
   documentation.nixos.enable = false;
+  documentation.enable = false;
+  documentation.info.enable = false;
+  documentation.man.enable = false;
+
+  
+  environment.variables.BROWSER = "echo";
+
+  nix.settings.trusted-users = [ "root" "@wheel" ];
+
+  time.timeZone = lib.mkDefault "UTC";
+  systemd = {
+    # Given that our systems are headless, emergency mode is useless.
+    # We prefer the system to attempt to continue booting so
+    # that we can hopefully still access it remotely.
+    enableEmergencyMode = false;
+
+    # For more detail, see:
+    #   https://0pointer.de/blog/projects/watchdog.html
+    watchdog = {
+      # systemd will send a signal to the hardware watchdog at half
+      # the interval defined here, so every 10s.
+      # If the hardware watchdog does not get a signal for 20s,
+      # it will forcefully reboot the system.
+      runtimeTime = "20s";
+      # Forcefully reboot if the final stage of the reboot
+      # hangs without progress for more than 30s.
+      # For more info, see:
+      #   https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdShutdownWatchdog
+      rebootTime = "30s";
+    };
+
+    sleep.extraConfig = ''
+      AllowSuspend=no
+      AllowHibernation=no
+    '';
+  };
+
+  systemd.services.NetworkManager-wait-online.enable = false;
+  systemd.network.wait-online.enable = false;
+  systemd.services.systemd-networkd.stopIfChanged = false;
+  systemd.services.systemd-resolved.stopIfChanged = false;
+  nix.settings.max-free = lib.mkDefault (1000 * 1000 * 1000);
+  nix.settings.min-free = lib.mkDefault (128 * 1000 * 1000);
+
+  # TODO: cargo culted.
+  nix.daemonCPUSchedPolicy = lib.mkDefault "batch";
+  nix.daemonIOSchedClass = lib.mkDefault "idle";
+  nix.daemonIOSchedPriority = lib.mkDefault 7;
+
+
   # My servers always use /dev/sda as boot disk...
   boot = {
     kernelPackages = pkgs.linuxPackages_latest;
@@ -26,6 +76,7 @@
   networking = {
     hostName = lib.mkDefault "Rory-nix-base-server";
     networkmanager.enable = false;
+    useNetworkd = true;
     wireless.enable = false;
     enableIPv6 = false;
     firewall = {
@@ -35,7 +86,8 @@
     };
 
     useDHCP = false;
-    nameservers = [ "1.1.1.1" ];
+#     nameservers = [ "1.1.1.1" "1.0.0.1" "8.8.8.8" "8.4.4.8" ];
+    nameservers = [ "10.10.0.4" "10.10.0.5" ];
     defaultGateway = "192.168.1.1";
   };