2026-05-09 00:17:11 +00:00
|
|
|
{ configuration, inputs, nixpkgs, roles ? [], system}:
|
|
|
|
|
let
|
2025-08-15 16:35:41 +00:00
|
|
|
allowed-unfree-packages = [
|
|
|
|
|
"corefonts"
|
2026-04-18 00:02:06 +00:00
|
|
|
"google-chrome"
|
2025-08-15 16:35:41 +00:00
|
|
|
"mongodb"
|
|
|
|
|
];
|
2026-05-09 00:17:11 +00:00
|
|
|
|
|
|
|
|
configFiles = nixpkgs.legacyPackages.${system}.stdenv.mkDerivation {
|
|
|
|
|
name = "config-files";
|
|
|
|
|
src = ./configs;
|
|
|
|
|
installPhase = ''
|
|
|
|
|
mkdir -p $out
|
|
|
|
|
cp -r * $out/
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
pkgs = import nixpkgs {
|
|
|
|
|
inherit system;
|
|
|
|
|
config = {
|
|
|
|
|
allowUnfreePredicate = pkg:
|
|
|
|
|
builtins.elem (nixpkgs.lib.getName pkg) allowed-unfree-packages;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
in
|
|
|
|
|
nixpkgs.lib.nixosSystem {
|
|
|
|
|
inherit system pkgs;
|
|
|
|
|
|
|
|
|
|
specialArgs = {
|
|
|
|
|
inherit inputs configFiles;
|
|
|
|
|
};
|
|
|
|
|
|
2025-08-15 16:35:41 +00:00
|
|
|
modules = [
|
2026-05-09 00:17:11 +00:00
|
|
|
configuration
|
2025-10-07 16:51:26 +00:00
|
|
|
inputs.authentik-nix.nixosModules.default
|
2026-05-09 00:17:11 +00:00
|
|
|
inputs.disko.nixosModules.disko
|
|
|
|
|
inputs.home-manager.nixosModules.home-manager
|
2025-08-15 16:35:41 +00:00
|
|
|
{
|
2025-10-07 16:51:26 +00:00
|
|
|
home-manager.extraSpecialArgs = { inherit configFiles inputs; };
|
2025-08-15 16:35:41 +00:00
|
|
|
home-manager.sharedModules = [
|
2026-05-09 00:17:11 +00:00
|
|
|
inputs.nixvim.homeModules.nixvim
|
2025-08-15 16:35:41 +00:00
|
|
|
./modules/home/nixvim.nix
|
|
|
|
|
];
|
|
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
|
}
|
2026-05-09 00:17:11 +00:00
|
|
|
inputs.sops-nix.nixosModules.sops
|
|
|
|
|
{
|
2025-08-15 16:35:41 +00:00
|
|
|
sops = {
|
|
|
|
|
age.generateKey = true;
|
2026-05-09 00:17:11 +00:00
|
|
|
age.keyFile = "/var/lib/sops-nix/key.txt";
|
2025-08-15 16:35:41 +00:00
|
|
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
|
|
|
|
defaultSopsFile = ./secrets/secrets.yaml;
|
|
|
|
|
};
|
|
|
|
|
}
|
2026-05-09 00:17:11 +00:00
|
|
|
./modules
|
2025-08-15 16:35:41 +00:00
|
|
|
./users
|
2025-10-07 16:35:12 +00:00
|
|
|
] ++ roles;
|
2025-08-15 16:35:41 +00:00
|
|
|
}
|