home-lab/machines/congenital-optimist/configuration.nix
Geir Okkenhaug Jerstad 5f65abc2cc feat: implement orchestrated auto-update system and fix deployment
- Add sma user module to little-rascal configuration for passwordless deployment
- Replace cosmic-greeter with greetd on both congenital-optimist and little-rascal
- Implement staggered auto-update system that updates remote machines first
- Add proper SSH user configuration for secure deployments
- Fix deployment permission issues by configuring admin user access
- Ensure orchestrator machine (congenital-optimist) reboots last to prevent SSH disconnection
- Add comprehensive error handling and update reporting
- Successfully tested lab tool deployment and auto-update on all machines

Fixes the critical issue where orchestrator reboot could break SSH connections
during multi-machine updates.
2025-06-30 14:35:21 +02:00

82 lines
1.8 KiB
Nix

{
config,
pkgs,
inputs,
unstable,
...
}: {
imports = [
./hardware-co.nix
./disk-ram-co.nix
./network-congenital-optimist.nix
# Security modules
../../modules/security/ssh-keys.nix
# Network modules
../../modules/network/extraHosts.nix
# Services
../../modules/services/nfs-client.nix
# Desktop environments
../../modules/desktop/common.nix
# ../../modules/desktop/gnome.nix
../../modules/desktop/cosmic.nix
../../modules/desktop/sway.nix
../../modules/desktop/niri.nix
../../modules/desktop/steam-xwayland-satellite.nix
# Fonts
../../modules/desktop/fonts.nix
# Development tools
../../modules/development/tools.nix
# AI tools
../../modules/ai/claude-code.nix
# User configuration
../../modules/users/geir.nix
../../modules/users/sma.nix
# Virtualization configuration
../../modules/virtualization/incus.nix
../../modules/virtualization/libvirt.nix
../../modules/virtualization/podman.nix
];
# Boot configuration
boot.loader.grub = {
enable = true;
zfsSupport = true;
efiSupport = true;
efiInstallAsRemovable = true;
mirroredBoots = [
{
devices = ["nodev"];
path = "/boot";
}
];
};
# Display manager - use greetd instead of cosmic-greeter
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd ${pkgs.zsh}/bin/zsh";
user = "greeter";
};
};
};
# ZFS services for this machine
services.zfs = {
autoScrub.enable = true;
trim.enable = true;
};
# Basic system configuration
nixpkgs.config.allowUnfree = true;
system.stateVersion = "23.11"; # DO NOT CHANGE - maintains data compatibility
}