2023-11-07 23:47:14 +00:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: {
|
|
|
|
imports = [
|
|
|
|
./admins.nix
|
|
|
|
./nix_keys.nix
|
|
|
|
./prometheusNodeExporter.nix
|
|
|
|
../modules/impermanence.nix
|
2023-09-22 18:00:35 +00:00
|
|
|
];
|
2023-12-18 16:52:53 +00:00
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
nix = {
|
2024-07-10 20:56:46 +00:00
|
|
|
channel.enable = false;
|
|
|
|
settings.nix-path = ["nixpkgs=${pkgs.path}"]; # -> For making nix-shell available while disabling channels.
|
2023-11-07 23:47:14 +00:00
|
|
|
extraOptions = ''
|
|
|
|
experimental-features = nix-command flakes
|
|
|
|
builders-use-substitutes = true
|
|
|
|
'';
|
2023-09-30 15:19:33 +00:00
|
|
|
};
|
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
networking = {
|
|
|
|
firewall = {
|
|
|
|
# these shoud be default, but better make sure!
|
|
|
|
enable = true;
|
|
|
|
allowPing = true;
|
|
|
|
};
|
|
|
|
nftables.enable = true;
|
|
|
|
useDHCP = false; # We don't speak DHCP and even if we would, we should enable it per interface
|
|
|
|
# hosts = # TODO write something to autogenerate ip adresses!
|
|
|
|
};
|
|
|
|
|
|
|
|
users = {
|
|
|
|
mutableUsers = false;
|
|
|
|
users.root.hashedPassword = "!";
|
|
|
|
};
|
2023-09-25 19:03:23 +00:00
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
impermanence.enable = true;
|
2023-09-28 15:12:34 +00:00
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
2023-09-30 15:19:33 +00:00
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
environment = {
|
|
|
|
systemPackages = builtins.attrValues {
|
|
|
|
inherit
|
|
|
|
(pkgs)
|
|
|
|
htop
|
|
|
|
lsof
|
|
|
|
tmux
|
|
|
|
btop
|
|
|
|
;
|
|
|
|
};
|
2023-09-30 15:19:33 +00:00
|
|
|
};
|
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
services = {
|
|
|
|
journald.extraConfig = "SystemMaxUse=5G";
|
2023-09-30 15:19:33 +00:00
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
nginx = {
|
|
|
|
recommendedOptimisation = true;
|
|
|
|
recommendedGzipSettings = true;
|
|
|
|
recommendedTlsSettings = true;
|
|
|
|
};
|
2023-09-30 15:19:33 +00:00
|
|
|
|
2023-11-07 23:47:14 +00:00
|
|
|
openssh = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
PermitRootLogin = "no";
|
|
|
|
PasswordAuthentication = false;
|
|
|
|
};
|
2023-09-30 15:19:33 +00:00
|
|
|
};
|
2023-11-07 23:47:14 +00:00
|
|
|
#Prevent clock drift due to interaction problem with xen hardware clock
|
|
|
|
timesyncd.enable = lib.mkForce true;
|
2023-09-30 15:19:33 +00:00
|
|
|
};
|
2023-09-25 19:03:23 +00:00
|
|
|
}
|