dotfiles/provision/hosts/kestrel/configuration.nix
2024-08-23 22:42:42 -07:00

84 lines
1.9 KiB
Nix

{ config, pkgs, user, lib, ... }:
{
imports = [
./syncthing.nix
];
# Use performance governor for sweet gaming performance!
powerManagement.cpuFreqGovernor = "performance";
# Set networking options
networking.hostName = "kestrel";
networking.firewall.checkReversePath = "loose";
networking.firewall.enable = false;
# Enable docker
virtualisation.docker.enable = true;
virtualisation.docker.storageDriver = "btrfs";
# Password-less root
security.sudo.extraRules = [{
users = [ "${user}" ];
commands = [{
command = "ALL" ;
options= [ "NOPASSWD" ];
}];
}];
environment.systemPackages = with pkgs; [
distrobox # Platform for creating and managing Linux distribution images.
];
# Secrets
age.secrets."wireguard/kestrel".file = ../../secrets/wireguard/kestrel.age;
# Modules
modules = {
desktop = {
gnome = {
enable = true;
wallpaper = "file://${../../../resources/img/wallpapers/gruvbox/kestrel.png}";
};
browser.enable = true;
};
devel = {
engineering.enable = true;
notes.enable = true;
python.enable = true;
tooling.enable = true;
};
gaming = {
steam.enable = true;
emulation.enable = true;
misc.enable = true;
};
services = {
jellyfin.enable = false;
peripherals.enable = true;
samba-client.enable = true;
virt-manager.enable = true;
};
system = {
nipr.enable = true;
secrets.enable = true;
ssh.enable = true;
terminal.enable = true;
wireguard-client = {
enable = true;
privateKeyFile = "/run/agenix/wireguard/kestrel";
address = [ "192.168.3.3/24" ];
publicKey = "bd7bbZOngl/FTdBlnbIhgCLNf6yx5X8WjiRB7E1NEQQ=";
endpoint = "66.218.43.87";
};
};
};
home-manager.users.${user} = {
modules = {
desktop = {
kitty.enable = true;
};
};
};
}