main
nix 131 lines 3.31 KB
Raw
1 { inputs, ... }:
2 {
3 imports = [
4 ./hardware.nix
5 inputs.srvos.nixosModules.server
6 ../../modules/common.nix
7 ./hydra-proxy.nix
8 ./hydra.nix
9 ];
10
11 nixpkgs.overlays = [
12 inputs.hydra.overlays.default
13 ];
14
15 disko.devices = import ./disko.nix;
16
17 boot = {
18 loader.grub = {
19 enable = true;
20 efiSupport = true;
21 efiInstallAsRemovable = true;
22 mirroredBoots = [
23 {
24 devices = [ "nodev" ];
25 path = "/boot";
26 }
27 {
28 devices = [ "nodev" ];
29 path = "/boot-fallback/1";
30 }
31 {
32 devices = [ "nodev" ];
33 path = "/boot-fallback/2";
34 }
35 ];
36 };
37 kernelParams = [ "console=tty" ];
38 };
39
40 networking = {
41 hostName = "nixos";
42 domain = "lysator.liu.se";
43 hostId = "44230408"; # Needed for ZFS
44 useDHCP = false;
45 };
46
47 systemd.network = {
48 enable = true;
49 networks."10-wan" = {
50 address = [
51 "130.236.254.207/24"
52 "2001:6b0:17:f0a0::cf/64"
53 ];
54
55 dns = [
56 "130.236.254.4"
57 "130.236.254.225"
58 "2001:6b0:17:f0a0::e1"
59 ];
60
61 linkConfig.RequiredForOnline = "routable";
62
63 routes = [
64 { Gateway = "130.236.254.1"; }
65 { Gateway = "2001:6b0:17:f0a0::1"; }
66 ];
67
68 matchConfig.Path = "pci-0000:06:00.0";
69 };
70 };
71
72 networking.firewall.allowedTCPPorts = [
73 80
74 443
75 ];
76 networking.firewall.allowedUDPPorts = [ ];
77
78 # Lysator admin account - DO NOT REMOVE
79 users.users.lysroot = {
80 isNormalUser = true;
81 extraGroups = [ "wheel" ];
82 openssh.authorizedKeys.keys = [
83 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF8WX07Oj1Mv9dIY6FaCdDdVQudVKJK6OSCRK8b16yzJ"
84 ];
85 };
86
87 security.sudo.wheelNeedsPassword = false;
88
89 # Lysator syslog forwarding
90 services.syslog-ng = {
91 enable = true;
92 extraConfig = ''
93 source s_local {
94 system();
95 internal();
96 };
97
98 destination d_loghost {
99 tcp("loghost.lysator.liu.se");
100 };
101
102 log {
103 source(s_local);
104 destination(d_loghost);
105 };
106 '';
107 };
108
109 services.fail2ban.enable = true;
110
111 system.stateVersion = "25.11";
112
113 users.users.root.openssh.authorizedKeys.keys = [
114 # John Ericson for working on Hydra
115 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdof+fSLyz3FV5t/yE9LBk/hgR8iNfdz/DRigvh4pP6+E4VPpPKSeA0a8r4CLMWvy9ZZ3Gqa04NdJnMmo8gBSIlo87JPq66GnC5QmeDJX2NLlliSeNQqUQKJ2VVcsVerz8O/RvVfvU2MIdW8VExx/DxeZbMnwRcWfUC0nby0NotWGNeS3NOcWWQq9z4E0sDSJ+QXSIMXWSeMda5sBadUK+YERTLYE/+ZVUPiXkXCmnwuRFHpZsqlRVad+kgXsZIwNEPUEqmEablg2C0NjvEbs75Yu9WUXXPJNhwaFbVXaWUM8UWO/n39jMM8aepalZbMhdFh129cAH35SjzIYjHxTP"
116
117 # Conni2461 for hydra-queue-runner
118 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPK/3rYhlIzoPCsPK38PMdK1ivqPaJgUqWwRtmxdKZrO"
119 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEltgDXy2aiHhkNeL4aF7P9mDcpMR9+v8zo8EKUQUNHP"
120
121 # picnoir for multiple signing keys
122 "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIPml1DaHG1i8WDEsbCCJwPRPf4wJWQAYQIYAyJh2zqMpAAAABHNzaDo="
123 "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEPPocCK4JCbFWshVHMgICOm61LC6V2JAXThzKjXv7TSAAAABHNzaDo="
124 "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEWWZ8LjNo41679gFI4Iv4YtjFxwhSbMZVsvvYYaTXdxAAAABHNzaDo= picnoir@framework"
125 ];
126
127 zramSwap = {
128 enable = true;
129 memoryPercent = 150;
130 };
131 }