blob: ccf4a776105cbb2589c6a291ad2c607c7ccd4dd0 (
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
{
config,
pkgs,
lib,
...
}:
{
imports = [
./base.nix
./users/chris.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;
watchdog = {
runtimeTime = "20s";
rebootTime = "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";
};
hardware.pulseaudio.enable = false;
# This shaves off half a gigabyte of disk space...
hardware.enableAllFirmware = false;
hardware.enableRedistributableFirmware = false;
services = {
promtail = {
enable = true;
configuration = {
server = {
http_listen_port = 3031;
grpc_listen_port = 0;
};
positions = {
filename = "/tmp/positions.yaml";
};
clients = [ { url = "https://loki.regional.seian.cloud/loki/api/v1/push"; } ];
scrape_configs = [
{
job_name = "journal";
journal = {
max_age = "12h";
labels = {
job = "systemd-journal";
host = "${toString config.networking.hostName}";
};
};
relabel_configs = [
{
source_labels = [ "__journal__systemd_unit" ];
target_label = "unit";
}
];
}
];
};
};
};
}
|