nixos-config/hosts/ni/default.nix

83 lines
2.0 KiB
Nix

{ config, pkgs, lib, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
./modules
(lib.private.mapHomeManagerUser "foo-dogsquared" {
extraGroups = [
"adbusers"
"wheel"
"audio"
"docker"
"podman"
"networkmanager"
"wireshark"
];
hashedPassword =
"$6$.cMYto0K0CHbpIMT$dRqyKs4q1ppzmTpdzy5FWP/V832a6X..FwM8CJ30ivK0nfLjQ7DubctxOZbeOtygfjcUd1PZ0nQoQpOg/WMvg.";
isNormalUser = true;
createHome = true;
home = "/home/foo-dogsquared";
description = "Gabriel Arazas";
})
];
hosts.ni = {
hardware.qol.enable = true;
networking = {
enable = true;
wireguard.enable = true;
};
services.backup.enable = true;
setups = {
desktop.enable = true;
development.enable = true;
music.enable = true;
gaming.enable = true;
};
};
disko.devices = import ./disko.nix {
disks = [ "/dev/nvme0n1" ];
};
services.openssh.hostKeys = [{
path = config.sops.secrets."ssh-key".path;
type = "ed25519";
}];
sops.secrets = lib.private.getSecrets ./secrets/secrets.yaml {
"ssh-key" = { };
};
# The keyfile required for the secrets to be decrypted.
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
# My custom configuration with my custom modules starts here.
profiles = {
archiving.enable = true;
browsers.chromium.enable = true;
filesystem.setups.personal-webstorage.enable = true;
};
# Basically, the most basic nixpkgs configuration.
environment.variables.NIXPKGS_CONFIG = lib.mkForce ./config/nixpkgs/config.nix;
# Make Nix experimental.
nix.package = pkgs.nixUnstable;
# Some more experimentals for Nix.
nix.settings = {
auto-allocate-uids = true;
experimental-features = [ "auto-allocate-uids" "configurable-impure-env" ];
};
# My poor achy-breaky desktop can't take it.
nix.daemonCPUSchedPolicy = "idle";
system.stateVersion = "24.05"; # Yes! I read the comment!
}