{ config, lib, pkgs, git_url, ... }: { imports = [ ./hardware-configuration.nix ../../modules/keycloak.nix ]; boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; networking.hostName = "auth"; networking.domain = "domain.com"; time.timeZone = "UTC"; services.openssh = { enable = true; settings = { PermitRootLogin = "prohibit-password"; PasswordAuthentication = false; }; }; environment.systemPackages = with pkgs; [ curl tmux wget bash ]; services.keycloak = { enable = true; hostname = "auth.domain.com"; adminPasswordFile = "/etc/keycloak-admin-password"; database = { host = "localhost"; passwordFile = "/etc/keycloak-db-password"; }; }; infra.gatus = { enable = true; hostname = "status.domain.com"; title = "Status"; endpoints = [ { name = "Keycloak"; url = "https://auth.domain.com/health"; interval = "1m"; conditions = [ "[STATUS] == 200" "[RESPONSE_TIME] < 500" ]; } ]; }; infra.autoUpdate = { enable = true; # selects the nixosConfigurations.auth.domain.com output from the flake flake = "${git_url}#auth.domain.com"; allowReboot = true; }; system.stateVersion = "26.05"; }