Nix-Vibe public snapshot (squashed history)
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
{ config
|
||||
, pkgs
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./settings.nix
|
||||
./fonts.nix
|
||||
./sops.nix
|
||||
./users.nix
|
||||
];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# SSH is key-only on all hosts. petere (the only SSH user) authenticates with
|
||||
# an authorized key; GUI users keep their local password for console/GUI login
|
||||
# but cannot use it over SSH. Root SSH is fully disabled.
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
};
|
||||
};
|
||||
|
||||
# Passwordless sudo for the admin/agent user only. Other wheel members
|
||||
# (e.g. caitlin, mary) must enter their password for sudo.
|
||||
security.sudo.extraRules = [
|
||||
{
|
||||
users = [ "petere" ];
|
||||
commands = [
|
||||
{
|
||||
command = "ALL";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
system.activationScripts.exportAgeKey = {
|
||||
text = ''
|
||||
if [ -f /root/.config/sops/age/keys.txt ]; then
|
||||
${pkgs.age}/bin/age-keygen -y < /root/.config/sops/age/keys.txt > /tmp/age-public-key.txt
|
||||
chmod 644 /tmp/age-public-key.txt
|
||||
fi
|
||||
'';
|
||||
deps = [ ];
|
||||
};
|
||||
|
||||
# Automatic Nix store garbage collection and optimisation to prevent disk
|
||||
# creep. Runs every 2 hours; persistent ensures missed runs are caught up on boot.
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "*-*-* 0/2:00:00";
|
||||
persistent = true;
|
||||
};
|
||||
|
||||
# Keep the last 5 system generations (regardless of age), then collect garbage.
|
||||
# nix.gc.options only accepts nix-collect-garbage flags (age-based), so we
|
||||
# override the service to add count-based generation pruning.
|
||||
systemd.services.nix-gc.script = lib.mkForce ''
|
||||
${pkgs.nix}/bin/nix-env --profile /nix/var/nix/profiles/system --delete-generations +5
|
||||
exec ${pkgs.nix}/bin/nix-collect-garbage
|
||||
'';
|
||||
|
||||
nix.optimise.automatic = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Antigravity removed - no longer used
|
||||
];
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
}
|
||||
Reference in New Issue
Block a user