OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      dda8fdc79e0d
DATE      2025-03-09
SUBJECT   installer: initial install media configuration
FILES     6 CHANGED
HASH      dda8fdc79e0d
DATE      2025-03-09
SUBJECT   installer: initial install media
          configuration
FILES     6 CHANGED
 

diff --git a/hosts/ooksinstall/default.nix b/hosts/ooksinstall/default.nix
new file mode 100644
index 0000000..ac66c41
--- /dev/null
+++ b/hosts/ooksinstall/default.nix
@@ -0,0 +1,18 @@
+{
+  system.switch.enable = false;
+  ooknet.host = {
+    role = "installer";
+    admin = {
+      name = "ooks";
+      shell = "bash";
+    };
+  };
+
+  isoImage = {
+    makeEfiBootable = true;
+    makeUsbBootable = true;
+    edition = "ooknet";
+  };
+
+  system.stateVersion = "25.05";
+}

diff --git a/hosts/ooksinstall/default.nix b
/hosts/ooksinstall/default.nix
new file mode 100644
index 0000000..ac66c41
--- /dev/null
+++ b/hosts/ooksinstall/default.nix
@@ -0,0 +1,18 @@
+{
+  system.switch.enable = false;
+  ooknet.host = {
+    role = "installer";
+    admin = {
+      name = "ooks";
+      shell = "bash";
+    };
+  };
+
+  isoImage = {
+    makeEfiBootable = true;
+    makeUsbBootable = true;
+    edition = "ooknet";
+  };
+
+  system.stateVersion = "25.05";
+}
 

diff --git a/modules/nixos/base/options.nix b/modules/nixos/base/options.nix
index 59d430d..0b3078f 100644
--- a/modules/nixos/base/options.nix
+++ b/modules/nixos/base/options.nix
@@ -39,7 +39,7 @@ in {
       type = enum ["vm" "desktop" "laptop"];
     };
     role = mkOption {
-      type = enum ["workstation" "server"];
+      type = enum ["workstation" "server" "installer"];
     };
 
     syncthing = {

diff --git a/modules/nixos/base/options.nix 
b/modules/nixos/base/options.nix
index 59d430d..0b3078f 100644
--- a/modules/nixos/base/options.nix
+++ b/modules/nixos/base/options.nix
@@ -39,7 +39,7 @@ in {
       type = enum ["vm" "desktop" "laptop"]
;
     };
     role = mkOption {
-      type = enum ["workstation" "server"];
+      type = enum ["workstation" "server" "
installer"];
     };
 
     syncthing = {
 

diff --git a/outputs/hosts/default.nix b/outputs/hosts/default.nix
index 66b5217..f33ed6e 100644
--- a/outputs/hosts/default.nix
+++ b/outputs/hosts/default.nix
@@ -2,5 +2,6 @@
   imports = [
     ./workstations.nix
     ./servers.nix
+    ./installer.nix
   ];
 }

diff --git a/outputs/hosts/default.nix b/out
puts/hosts/default.nix
index 66b5217..f33ed6e 100644
--- a/outputs/hosts/default.nix
+++ b/outputs/hosts/default.nix
@@ -2,5 +2,6 @@
   imports = [
     ./workstations.nix
     ./servers.nix
+    ./installer.nix
   ];
 }
 

diff --git a/outputs/hosts/installer.nix b/outputs/hosts/installer.nix
new file mode 100644
index 0000000..ffb6654
--- /dev/null
+++ b/outputs/hosts/installer.nix
@@ -0,0 +1,16 @@
+{
+  withSystem,
+  ook,
+  ...
+}: let
+  inherit (ook.lib.builders) mkImage;
+in {
+  flake.nixosConfigurations = {
+    ooksinstall = mkImage {
+      inherit withSystem;
+      system = "x86_64-linux";
+      hostname = "ooksinstall";
+      installer = true;
+    };
+  };
+}

diff --git a/outputs/hosts/installer.nix b/o
utputs/hosts/installer.nix
new file mode 100644
index 0000000..ffb6654
--- /dev/null
+++ b/outputs/hosts/installer.nix
@@ -0,0 +1,16 @@
+{
+  withSystem,
+  ook,
+  ...
+}: let
+  inherit (ook.lib.builders) mkImage;
+in {
+  flake.nixosConfigurations = {
+    ooksinstall = mkImage {
+      inherit withSystem;
+      system = "x86_64-linux";
+      hostname = "ooksinstall";
+      installer = true;
+    };
+  };
+}
 

diff --git a/outputs/images.nix b/outputs/images.nix
index 8e15f51..7b3b13a 100644
--- a/outputs/images.nix
+++ b/outputs/images.nix
@@ -1,5 +1,6 @@
 {self, ...}: {
   flake.images = {
     ooknode = self.nixosConfigurations.ooknode.config.system.build.image;
+    ooksinstall = self.nixosConfigurations.ooksinstall.config.system.build.isoIma
ge;
   };
 }

diff --git a/outputs/images.nix b/outputs/im
ages.nix
index 8e15f51..7b3b13a 100644
--- a/outputs/images.nix
+++ b/outputs/images.nix
@@ -1,5 +1,6 @@
 {self, ...}: {
   flake.images = {
     ooknode = self.nixosConfigurations.ookn
ode.config.system.build.image;
+    ooksinstall = self.nixosConfigurations.
ooksinstall.config.system.build.isoImage;
   };
 }
 

diff --git a/outputs/lib/builders.nix b/outputs/lib/builders.nix
index 0c9677a..4d90717 100644
--- a/outputs/lib/builders.nix
+++ b/outputs/lib/builders.nix
@@ -20,10 +20,15 @@
   minimalCore = [
     (baseModules + "/options.nix")
     (baseModules + "/admin.nix")
-    (baseModules + "/ssh.nix")
+    (baseModules + "/openssh.nix")
   ];
   core = [baseModules hardwareModules consoleModules appearanceModules hm secrets
];
   hostModules = "${self}/hosts";
+  installModules = [
+    "${nixpkgs}/nixos/modules/installer/cd-dvd/iso-image.nix"
+    "${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
+    "${nixpkgs}/nixos/modules/profiles/all-hardware.nix"
+  ];
 
   mkNixos = nixpkgs.lib.nixosSystem;
 
@@ -116,9 +121,10 @@
       };
 
   mkImage = {
-    profile,
+    profile ? null,
     system,
     hostname,
+    installer ? false,
     additionalModules ? [],
     ...
   }:
@@ -132,9 +138,19 @@
             flake.source = nixpkgs.outPath;
           };
         })
-        ["${self}/modules/server/profiles/${profile}/base"]
         minimalCore
         additionalModules
+        [secrets]
+        (
+          if installer
+          then installModules
+          else []
+        )
+        (
+          if profile != null
+          then ["${self}/modules/server/profiles/${profile}/base"]
+          else [(hostModules + "/${hostname}")]
+        )
       ];
     };
 in {

diff --git a/outputs/lib/builders.nix b/outp
uts/lib/builders.nix
index 0c9677a..4d90717 100644
--- a/outputs/lib/builders.nix
+++ b/outputs/lib/builders.nix
@@ -20,10 +20,15 @@
   minimalCore = [
     (baseModules + "/options.nix")
     (baseModules + "/admin.nix")
-    (baseModules + "/ssh.nix")
+    (baseModules + "/openssh.nix")
   ];
   core = [baseModules hardwareModules conso
leModules appearanceModules hm secrets];
   hostModules = "${self}/hosts";
+  installModules = [
+    "${nixpkgs}/nixos/modules/installer/cd-
dvd/iso-image.nix"
+    "${nixpkgs}/nixos/modules/installer/cd-
dvd/channel.nix"
+    "${nixpkgs}/nixos/modules/profiles/all-
hardware.nix"
+  ];
 
   mkNixos = nixpkgs.lib.nixosSystem;
 
@@ -116,9 +121,10 @@
       };
 
   mkImage = {
-    profile,
+    profile ? null,
     system,
     hostname,
+    installer ? false,
     additionalModules ? [],
     ...
   }:
@@ -132,9 +138,19 @@
             flake.source = nixpkgs.outPath;
           };
         })
-        ["${self}/modules/server/profiles/$
{profile}/base"]
         minimalCore
         additionalModules
+        [secrets]
+        (
+          if installer
+          then installModules
+          else []
+        )
+        (
+          if profile != null
+          then ["${self}/modules/server/pro
files/${profile}/base"]
+          else [(hostModules + "/${hostname
}")]
+        )
       ];
     };
 in {
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET