diff options
| -rw-r--r-- | flake.nix | 17 | ||||
| -rw-r--r-- | hosts/ganymede/system.nix | 8 | ||||
| -rw-r--r-- | lib/nix-furnace/mkSystem.nix | 22 |
3 files changed, 40 insertions, 7 deletions
@@ -19,6 +19,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # for server that doesn't have nixos + system-manager = { + url = "github:numtide/system-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + hjem = { url = "github:feel-co/hjem"; inputs.nixpkgs.follows = "nixpkgs"; @@ -26,19 +32,24 @@ }; outputs = inputs: let - mkSystem = import ./lib/nix-furnace/mkSystem.nix; + inherit (import ./lib/nix-furnace/mkSystem.nix) mkNixosSystem mkSystemManagerSystem; in { - nixosConfigurations."mercury" = mkSystem { + nixosConfigurations."mercury" = mkNixosSystem { inherit inputs; hostname = "mercury"; username = "collin"; module_types = ["hjem" "nixos"]; }; - nixosConfigurations."jupiter" = mkSystem { + nixosConfigurations."jupiter" = mkNixosSystem { inherit inputs; hostname = "jupiter"; username = "collin"; module_types = ["hjem" "home" "nixos"]; }; + + systemConfigs."ganymede" = mkSystemManagerSystem { + inherit inputs; + hostanme = "ganymede"; + }; }; } diff --git a/hosts/ganymede/system.nix b/hosts/ganymede/system.nix new file mode 100644 index 0000000..7eb2e74 --- /dev/null +++ b/hosts/ganymede/system.nix @@ -0,0 +1,8 @@ +{ + config, + lib, + pkgs, + ... +}: { + nixpkgs.hostPlatform = "x86_64-linux"; +} diff --git a/lib/nix-furnace/mkSystem.nix b/lib/nix-furnace/mkSystem.nix index 3285f3a..cf14f4a 100644 --- a/lib/nix-furnace/mkSystem.nix +++ b/lib/nix-furnace/mkSystem.nix @@ -97,9 +97,23 @@ let } else {} ) - - # This is where we would add nix-on-droid modules ]; }; -in - mkNixosSystem + + mkSystemManagerSystem = { + inputs, + hostname, + }: + inputs.system-manager.lib.makeSystemConfig { + modules = + [../../modules/options.nix ../../hosts/${hostname}/system.nix] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/system/default.nix) + ])) + |> my-lib.flatten); + }; +in { + inherit mkNixosSystem mkSystemManagerSystem; +} |
