summary refs log tree commit diff
path: root/modules/base-server.nix
blob: cfee9decaa4a5d9b22731f994e64081e1f5420b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{
  config,
  pkgs,
  lib,
  ...
}:

{
  imports = [
    ./base.nix
  ];
  documentation.nixos.enable = false;
  documentation.enable = false;
  documentation.info.enable = false;
  documentation.man.enable = false;

  environment.variables.BROWSER = "echo";

  time.timeZone = lib.mkDefault "UTC";
  systemd = {
    enableEmergencyMode = false;
    settings = {
      Manager = {
        RuntimeWatchdogSec = "20s";
        RebootWatchdogSec = "30s";
      };
    };

    sleep.extraConfig = ''
      AllowSuspend=no
      AllowHibernation=no
    '';
  };

  #systemd.services.NetworkManager-wait-online.enable = false;
  #systemd.network.wait-online.enable = false;

  # My servers always use /dev/vda as boot disk...
  boot = {
    kernelPackages = pkgs.linuxPackages_latest;
    loader = {
      grub = {
        devices = lib.mkIf (config.fileSystems ? "/boot") [ "nodev" ];
        # EFI
        efiSupport = config.fileSystems ? "/boot" && config.fileSystems."/boot".fsType == "vfat";
        efiInstallAsRemovable = config.fileSystems ? "/boot" && config.fileSystems."/boot".fsType == "vfat";
      };
      timeout = 1;
    };
  };

  networking = {
    hostName = lib.mkDefault "Rory-nix-base-server";
    networkmanager.enable = false;
    wireless.enable = false;
    enableIPv6 = false;
    firewall = {
      enable = false;
      allowedTCPPorts = [ 22 ];
    };

    useDHCP = false;
    nameservers = [
      "10.10.0.4"
      "10.10.0.5"
      "1.1.1.1"
      "1.0.0.1"
      "8.8.8.8"
      "8.4.4.8"
    ];
    defaultGateway = lib.mkDefault "192.168.1.1";
  };

  services.pulseaudio.enable = false;

  # This shaves off half a gigabyte of disk space...
  hardware.enableAllFirmware = false;
  hardware.enableRedistributableFirmware = false;
}