From 10c22ef344bc22ca62e916d30468e97e368ff99b Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Tue, 9 Sep 2025 20:39:48 -0500 Subject: system-manager for non-nixos machine ganymede --- flake.nix | 17 ++++++++++++++--- hosts/ganymede/system.nix | 8 ++++++++ lib/nix-furnace/mkSystem.nix | 22 ++++++++++++++++++---- 3 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 hosts/ganymede/system.nix diff --git a/flake.nix b/flake.nix index 2075adf..05970ce 100644 --- a/flake.nix +++ b/flake.nix @@ -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; +} -- cgit v1.3.1