diff --git a/flake.nix b/flake.nix index 0590318..1105874 100644 --- a/flake.nix +++ b/flake.nix @@ -29,7 +29,7 @@ # emanote.url = "github:srid/emanote"; }; - outputs = inputs: + outputs = { self, ... }@inputs: let nix-config = { allowUnfree = true; @@ -45,61 +45,6 @@ # cute-api = builtins.getFlake "gitlab:bertof/cute-api/0.2.1-3"; - basic_module = { - nixpkgs = { - config = nix-config; - overlays = [ - # packages - inputs.self.overlays.packages - inputs.self.overlays.overrides - ]; - }; - nix = { - inherit (nix-config) extraOptions; - registry = { - stable = { from = { id = "stable"; type = "indirect"; }; flake = inputs.nixpkgs; }; - unstable = { from = { id = "unstable"; type = "indirect"; }; flake = inputs.nixpkgs-u; }; - }; - }; - }; - - # Home manager configuration - homeManagerUModules = [ - inputs.home-manager-u.nixosModules.default - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - stable = inputs.nixpkgs; - unstable = inputs.nixpkgs-u; - }; - }; - } - ]; - - commonModules = [ - # Nix configuration - basic_module - - # Nix rice - inputs.nix-rice.modules.default - ./nixos/rice.nix - - # # S3 cache read - # ./nixos/s3_cache_read.nix - - # Agenix configuration - inputs.ragenix.nixosModules.default - # inputs.agenix.nixosModules.default - - # { services.userborn.enable = true; } - ./nixos/users/bertof.nix - - # Some basic defaults - ./nixos/basics - ]; - mainModules = [ ./nixos/pro_audio.nix ./nixos/kdeconnect.nix @@ -110,7 +55,7 @@ { home-manager.users.bertof.imports = [ ./hm/hyprland.nix ]; } ]; - installerModules = commonModules ++ [ ./nixos/installer.nix ]; + installerModules = [ self.nixosModules.commonModules ./nixos/installer.nix ]; in inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = import inputs.systems; @@ -233,12 +178,68 @@ }; }; - nixosModules = { }; + nixosModules = { + basic = { + nixpkgs = { + config = nix-config; + overlays = [ + # packages + inputs.self.overlays.packages + inputs.self.overlays.overrides + ]; + }; + nix = { + inherit (nix-config) extraOptions; + registry = { + stable = { from = { id = "stable"; type = "indirect"; }; flake = inputs.nixpkgs; }; + unstable = { from = { id = "unstable"; type = "indirect"; }; flake = inputs.nixpkgs-u; }; + }; + }; + }; + + # Home manager configuration + homeManagerUModules = { + imports = [ inputs.home-manager-u.nixosModules.default ]; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + stable = inputs.nixpkgs; + unstable = inputs.nixpkgs-u; + }; + }; + }; + + commonModules = { + imports = [ + # Nix configuration + self.nixosModules.basic + + # Nix rice + inputs.nix-rice.modules.default + ./nixos/rice.nix + + # # S3 cache read + # ./nixos/s3_cache_read.nix + + # Agenix configuration + inputs.ragenix.nixosModules.default + # inputs.agenix.nixosModules.default + + # { services.userborn.enable = true; } + ./nixos/users/bertof.nix + + # Some basic defaults + ./nixos/basics + ]; + }; + }; nixosConfigurations = { thor = inputs.nixpkgs-u.lib.nixosSystem { system = "x86_64-linux"; - modules = commonModules ++ mainModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ mainModules ++ [ ./instances/thor/hardware-configuration.nix inputs.nixos-hardware.nixosModules.common-cpu-amd inputs.nixos-hardware.nixosModules.common-pc-ssd @@ -256,17 +257,20 @@ { home-manager.users.bertof.imports = [ ./hm/hyprland.nix ]; } ./nixos/musa.nix - ] ++ homeManagerUModules ++ [{ - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - }; - home-manager.users.bertof = import ./instances/thor/hm.nix; - }]; + self.nixosModules.homeManagerUModules + + { + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + }; + home-manager.users.bertof = import ./instances/thor/hm.nix; + } + ]; }; sif = inputs.nixpkgs-u.lib.nixosSystem { system = "x86_64-linux"; - modules = commonModules ++ mainModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ mainModules ++ [ ./instances/sif/hardware-configuration.nix inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-cpu-intel @@ -282,17 +286,20 @@ # ./nixos/minio_local.nix # ./nixos/musa.nix - ] ++ homeManagerUModules ++ [{ - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - }; - home-manager.users.bertof = import ./instances/sif/hm.nix; - }]; + self.nixosModules.homeManagerUModules + + { + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + }; + home-manager.users.bertof = import ./instances/sif/hm.nix; + } + ]; }; odin = inputs.nixpkgs-u.lib.nixosSystem { system = "x86_64-linux"; - modules = commonModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ [ inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd @@ -305,19 +312,22 @@ ./nixos/ip_forwarding.nix # ./nixos/plasma6.nix ./nixos/steam.nix - ] ++ homeManagerUModules ++ [{ - home-manager.users.bertof = import ./instances/odin/hm.nix; - home-manager.users.tiziano = import ./instances/odin/hm_tiziano.nix; - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; - }; - }]; + self.nixosModules.homeManagerUModules + + { + home-manager.users.bertof = import ./instances/odin/hm.nix; + home-manager.users.tiziano = import ./instances/odin/hm_tiziano.nix; + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; + }; + } + ]; }; heimdall = inputs.nixpkgs-u.lib.nixosSystem { system = "x86_64-linux"; - modules = commonModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ [ inputs.nixos-hardware.nixosModules.common-cpu-amd inputs.nixos-hardware.nixosModules.common-gpu-amd inputs.nixos-hardware.nixosModules.common-pc-ssd @@ -340,20 +350,23 @@ # ./nixos/ntfy.nix # S3 cache read # ./nixos/s3_cache_read.nix - ] ++ homeManagerUModules ++ [{ - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - heimdall-gitlab-runner-nix.file = ./secrets/heimdall-gitlab-runner-nix.age; - heimdall-gitlab-runner-docker-images.file = ./secrets/heimdall-gitlab-runner-docker-images.age; - heimdall-gitlab-runner-default.file = ./secrets/heimdall-gitlab-runner-default.age; - }; - home-manager.users.bertof = import ./instances/heimdall/hm.nix; - }]; + self.nixosModules.homeManagerUModules + + { + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + heimdall-gitlab-runner-nix.file = ./secrets/heimdall-gitlab-runner-nix.age; + heimdall-gitlab-runner-docker-images.file = ./secrets/heimdall-gitlab-runner-docker-images.age; + heimdall-gitlab-runner-default.file = ./secrets/heimdall-gitlab-runner-default.age; + }; + home-manager.users.bertof = import ./instances/heimdall/hm.nix; + } + ]; }; freya = inputs.nixpkgs.lib.nixosSystem { system = "aarch64-linux"; - modules = commonModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ [ inputs.nixos-hardware.nixosModules.raspberry-pi-4 ({ lib, ... }: { boot.supportedFilesystems = lib.mkForce [ @@ -379,22 +392,25 @@ ./nixos/ntfy.nix # S3 cache read # ./nixos/s3_cache_read.nix - ] ++ homeManagerUModules ++ [{ - home-manager.users.bertof = import ./instances/freya/hm.nix; + self.nixosModules.homeManagerUModules + + { + home-manager.users.bertof = import ./instances/freya/hm.nix; - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; - }; + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; + }; - }]; + } + ]; }; baldur = inputs.nixpkgs-u.lib.nixosSystem { system = "x86_64-linux"; - modules = commonModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ [ ./nixos/server ./instances/baldur/hardware-configuration.nix ./instances/baldur/configuration.nix @@ -405,20 +421,23 @@ # ./nixos/users/tiziano.nix # S3 cache read # ./nixos/s3_cache_read.nix - ] ++ homeManagerUModules ++ [{ - home-manager.users.bertof = import ./instances/baldur/hm.nix; - home-manager.users.tiziano = import ./instances/baldur/hm_tiziano.nix; + self.nixosModules.homeManagerUModules - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; - }; - }]; + { + home-manager.users.bertof = import ./instances/baldur/hm.nix; + home-manager.users.tiziano = import ./instances/baldur/hm_tiziano.nix; + + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; + }; + } + ]; }; loki = inputs.nixpkgs.lib.nixosSystem { system = "x86_64-linux"; - modules = commonModules ++ [ + modules = [ self.nixosModules.commonModules ] ++ [ ./nixos/server inputs.nixos-hardware.nixosModules.common-cpu-intel @@ -429,15 +448,18 @@ ./nixos/users/tiziano.nix # S3 cache read # ./nixos/s3_cache_read.nix - ] ++ homeManagerUModules ++ [{ - home-manager.users.bertof = import ./instances/odin/hm.nix; - home-manager.users.tiziano = import ./instances/odin/hm_tiziano.nix; + self.nixosModules.homeManagerUModules - age.secrets = { - rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; - rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; - }; - }]; + { + home-manager.users.bertof = import ./instances/odin/hm.nix; + home-manager.users.tiziano = import ./instances/odin/hm_tiziano.nix; + + age.secrets = { + rclone_bertof = { file = ./secrets/rclone_bertof.age; owner = "bertof"; }; + rclone_tiziano = { file = ./secrets/rclone_tiziano.age; owner = "tiziano"; }; + }; + } + ]; }; };