{ self , nixpkgs-unstable , nixpkgs , sops-nix , inputs , nixos-hardware , home-manager , ... }: let nixosSystem = nixpkgs.lib.makeOverridable nixpkgs.lib.nixosSystem; nixosSystemUnstable = nixpkgs-unstable.lib.makeOverridable nixpkgs-unstable.lib.nixosSystem; baseModules = [ # make flake inputs accessiable in NixOS { _module.args.inputs = inputs; } { imports = [ ({ pkgs, ... }: { nix = { extraOptions = '' experimental-features = nix-command flakes ''; settings = { substituters = [ "https://cache.dynamicdiscord.de" "https://cache.nixos.org/" ]; trusted-public-keys = [ "cache.dynamicdiscord.de:DKueZicqi2NhJJXz9MYgUbiyobMs10fTyHCgAUibRP4=" ]; trusted-users = [ "root" "@wheel" ]; }; }; }) sops-nix.nixosModules.sops ]; } ]; defaultModules = baseModules; in { moderatio = nixosSystem { system = "x86_64-linux"; specialArgs.inputs = inputs; modules = defaultModules ++ [ ./moderatio/configuration.nix ]; }; louise = nixosSystem { system = "x86_64-linux"; specialArgs.inputs = inputs; modules = defaultModules ++ [ ./louise/configuration.nix ]; }; durruti = nixosSystem { system = "x86_64-linux"; specialArgs.inputs = inputs; modules = defaultModules ++ [ ./durruti/configuration.nix ]; }; lucia = nixosSystem { system = "aarch64-linux"; specialArgs.inputs = inputs; modules = defaultModules ++ [ ./lucia/configuration.nix ./lucia/hardware_configuration.nix ]; }; }