2024-08-07 17:41:33 +02:00
|
|
|
toplevel @ {
|
|
|
|
inputs,
|
|
|
|
withSystem,
|
|
|
|
...
|
|
|
|
}: let
|
2024-06-18 20:32:19 +02:00
|
|
|
system = "x86_64-linux";
|
2024-08-02 19:47:54 +02:00
|
|
|
mods = toplevel.config.flake.nixosModules;
|
2024-08-03 10:57:26 +02:00
|
|
|
hardwareConfigurations = toplevel.config.flake.hardwareConfigurations;
|
2024-08-07 17:41:33 +02:00
|
|
|
essential = with mods; [grub base shell security wireless intranet];
|
|
|
|
desktop = with mods; [sound wayland];
|
|
|
|
configWithModules = {
|
|
|
|
hardware ? {nixpkgs.hostPlatform = system;},
|
|
|
|
modules,
|
|
|
|
}:
|
|
|
|
withSystem system (ctx @ {
|
|
|
|
config,
|
|
|
|
inputs',
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
inputs.nixpkgs.lib.nixosSystem {
|
|
|
|
specialArgs = {
|
|
|
|
inherit inputs inputs' pkgs;
|
|
|
|
packages = config.packages;
|
|
|
|
};
|
|
|
|
modules = [hardware] ++ modules;
|
|
|
|
});
|
|
|
|
novaConfig = mods:
|
|
|
|
configWithModules {
|
|
|
|
hardware = hardwareConfigurations.nova;
|
|
|
|
modules = essential ++ desktop ++ mods;
|
2024-08-02 19:47:54 +02:00
|
|
|
};
|
2024-08-07 17:41:33 +02:00
|
|
|
in {
|
2024-07-04 08:38:33 +02:00
|
|
|
flake.nixosConfigurations = {
|
2024-08-07 17:41:33 +02:00
|
|
|
nova = novaConfig [mods.ivand];
|
|
|
|
nova-music = novaConfig (with mods; [ivand music]);
|
|
|
|
nova-crypto = novaConfig (with mods; [ivand cryptocurrency]);
|
|
|
|
nova-nonya = novaConfig (with mods; [ivand anon cryptocurrency]);
|
|
|
|
nova-ai = novaConfig (with mods; [ivand ai]);
|
|
|
|
install-iso = configWithModules {modules = with mods; [grub base shell wireless];};
|
|
|
|
vps = configWithModules {modules = with mods; [base shell security vps mailserver nginx wireguard-output anonymous-dns firewall rest];};
|
|
|
|
stara-miner = configWithModules {modules = essential ++ [mods.monero-miner];};
|
2024-07-04 08:38:33 +02:00
|
|
|
};
|
2024-06-18 20:32:19 +02:00
|
|
|
}
|