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
┌─ hosts/ooksinstall/default.nix ────────────────────────────────────────────┐
│ 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"; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ hosts/ooksinstall/default.nix ──────┐
│ 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"; │
│ +} │
└──────────────────────────────────────────────┘
┌─ modules/nixos/base/options.nix ───────────────────────────────────────────┐
│ 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 = { │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ modules/nixos/base/options.nix ─────┐
│ 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 = { │
└──────────────────────────────────────────────┘
┌─ outputs/hosts/default.nix ────────────────────────────────────────────────┐
│ 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 │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/hosts/default.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 │
│ ]; │
│ } │
└──────────────────────────────────────────────┘
┌─ outputs/hosts/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; │
│ + }; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/hosts/installer.nix ────────┐
│ 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; │
│ + }; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘
┌─ outputs/images.nix ───────────────────────────────────────────────────────┐
│ 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; │
│ }; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/images.nix ─────────────────┐
│ 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; │
│ }; │
│ } │
└──────────────────────────────────────────────┘
┌─ outputs/lib/builders.nix ─────────────────────────────────────────────────┐
│ 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 { │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ outputs/lib/builders.nix ───────────┐
│ 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