nixos-config/machines/odin/configuration.nix

156 lines
3.1 KiB
Nix
Raw Normal View History

2024-02-05 11:46:52 +01:00
{
nixos-hardware,
disko,
nix-ld-rs,
...
}:
{ pkgs, config, ... }:
2023-01-17 13:45:37 +01:00
{
imports = [
nixos-hardware.nixosModules.common-cpu-intel
nixos-hardware.nixosModules.common-pc-ssd
disko.nixosModules.disko
./storage.nix
./network.nix
./virtualisation.nix
./promtail
2023-01-17 14:09:13 +01:00
../../users/erwin
../../users/root
2023-01-17 13:45:37 +01:00
];
eboskma = {
users.erwin = {
enable = true;
server = true;
2023-01-17 13:45:37 +01:00
};
base = {
plymouth.enable = true;
};
nix-common = {
enable = true;
remote-builders = true;
};
# libvirtd.enable = true;
2023-01-17 13:45:37 +01:00
systemd.enable = true;
tailscale.enable = true;
};
security = {
sudo-rs = {
enable = true;
};
sudo.enable = false;
2024-07-30 12:10:31 +02:00
apparmor = {
2024-07-30 12:31:59 +02:00
enable = false;
2024-07-30 12:10:31 +02:00
};
2023-01-17 13:45:37 +01:00
};
boot = {
loader = {
systemd-boot = {
enable = true;
configurationLimit = 10;
};
efi.canTouchEfiVariables = true;
};
initrd = {
2024-02-05 11:46:52 +01:00
availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
"virtio_blk"
"virtio_pci"
];
kernelModules = [ "kvm-intel" ];
2023-01-17 13:45:37 +01:00
};
kernelPackages = pkgs.linuxPackages_latest;
2024-02-05 11:46:52 +01:00
kernelModules = [
"kvm-intel"
"dm-thin-pool"
"dm-snapshot"
];
# From PVE: ro quiet intel_iommu=on i915.enable_gvt=1 cpufreq.default_governor=ondemand
# kernelParams = [ "intel_iommu=on" "i915.enable_gvt=1" "cpufreq.default_governor=ondemand" ];
extraModulePackages = with config.boot.kernelPackages; [ gasket ];
kernel.sysctl = {
"net.core.rmem_max" = 2500000;
"net.core.wmem_max" = 2500000;
};
2023-01-17 13:45:37 +01:00
};
hardware.enableAllFirmware = true;
users.users.consoledash = {
isSystemUser = true;
home = "/var/lib/consoledash";
group = "consoledash";
createHome = true;
# Stole this from here:
# https://github.com/mcdonc/.nixconfig/blob/66f427c029eb673c44bb7df919b78485ce3e8b01/videos/restricteduser/script.rst
# shell =
# let
# rbash = pkgs.runCommandNoCC "rbash-${pkgs.bashInteractive.version}" { } ''
# mkdir -p $out/bin
# ln -s ${pkgs.bashInteractive}/bin/bash $out/bin/rbash
# '';
# in
# "${rbash}/bin/rbash";
shell = "${pkgs.glances}/bin/glances";
ignoreShellProgramCheck = true;
hashedPassword = null;
};
users.groups.consoledash = { };
programs = {
2024-09-18 16:59:40 +02:00
bandwhich.enable = true;
nix-ld = {
enable = true;
package = nix-ld-rs.packages.${pkgs.hostPlatform.system}.nix-ld-rs;
2023-04-07 10:10:53 +02:00
};
};
services = {
getty.autologinUser = "consoledash";
openssh.enable = true;
lvm = {
enable = true;
};
prometheus.exporters = {
node = {
enable = true;
enabledCollectors = [ "systemd" ];
};
};
2024-06-11 15:26:14 +02:00
iperf3 = {
enable = true;
openFirewall = true;
};
2024-09-23 13:40:47 +02:00
2024-09-24 15:07:40 +02:00
sysstat = {
enable = true;
collect-frequency = "*:*:0";
};
2023-01-17 13:45:37 +01:00
};
2024-09-23 13:40:47 +02:00
environment.systemPackages = with pkgs; [
sysstat
];
system.stateVersion = "24.05";
2023-01-17 13:45:37 +01:00
}