summary refs log tree commit diff
path: root/host/uISO/iso-root.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/uISO/iso-root.nix')
-rw-r--r--host/uISO/iso-root.nix128
1 files changed, 128 insertions, 0 deletions
diff --git a/host/uISO/iso-root.nix b/host/uISO/iso-root.nix
new file mode 100644

index 0000000..6f02772 --- /dev/null +++ b/host/uISO/iso-root.nix
@@ -0,0 +1,128 @@ +{ + config, + lib, + pkgs, + nixpkgs, + + #params + #enableBios ? true, + #enableEfi ? true, + #enableUsb ? true, + + ... +}: + +#with lib; + +{ + imports = [ + (nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix") + ]; + + fileSystems = lib.mkImageMediaOverride config.lib.isoFileSystems;# // { + # "/".device = lib.mkForce "/dev/disk/by-label/NIXOS_ISO"; + # "/nix/.ro-store".device = lib.mkForce "/sysroot/iso/nix-store.squashfs"; + #}; + + isoImage = { + isoName = "Spacebar-Selfhosting-Kit-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso"; + + makeEfiBootable = false; + makeUsbBootable = false; + makeBiosBootable = true; + }; + + + boot.supportedFilesystems = lib.mkForce [ ]; + hardware.enableRedistributableFirmware = lib.mkForce false; + #environment.systemPackages = lib.mkForce [ ]; + documentation.enable = lib.mkForce false; + documentation.nixos.enable = lib.mkForce false; + networking.wireless.enable = lib.mkForce false; + + system.extraDependencies = lib.mkForce []; + + boot = { + loader = { + grub.memtest86.enable = false; + #systemd-boot.enable = true; + grub.enable = false; + timeout = lib.mkForce 1; + }; + + #kernelPackages = pkgs.linuxPackages_latest; + systemdExecutable = "${pkgs.systemd}/bin/init"; + + enableContainers = lib.mkForce false; + }; + + + #perlless profile + system.switch.enable = lib.mkForce false; + + # Remove perl from activation + #system.etc.overlay.enable = lib.mkForce true; + #systemd.sysusers.enable = lib.mkForce true; + + # Random perl remnants + programs.less.lessopen = lib.mkForce null; + programs.command-not-found.enable = lib.mkForce false; + environment.defaultPackages = lib.mkForce [ ]; + documentation.info.enable = lib.mkForce false; + documentation.man.enable = false; + + system = { + #activatable = false; + copySystemConfiguration = false; + includeBuildDependencies = false; + disableInstallerTools = lib.mkForce true; + build = { + separateActivationScript = true; + }; + }; + + nix.enable = false; + networking.firewall.enable = false; + networking.networkmanager.enable = false; + systemd.coredump.enable = false; + services.timesyncd.enable = false; + + services.nscd.enableNsncd = false; + networking.dhcpcd.enable = false; + services.udev.enable = false; + services.nscd.enable = false; + system.nssModules = lib.mkForce []; + + systemd.oomd.enable = false; + #services.getty = { + # autologinUser = "root"; + # loginProgram = "${pkgs.bash}/bin/bash"; + # loginOptions = "--login"; + #}; + + security = { + loginDefs = { + settings = { + ENCRYPT_METHOD = "MD5"; + }; + }; + sudo.enable = false; + }; + + nixpkgs.overlays = [ + (import ./overlays/systemd-overlay.nix) + (import ./overlays/grub-overlay.nix) + ]; + + services.lvm.enable = lib.mkForce false; + boot.initrd.services.lvm.enable = lib.mkForce false; + boot.initrd.systemd.suppressedUnits = [ + "systemd-hibernate-clear.service" + ]; + + systemd.suppressedSystemUnits = [ + "systemd-hibernate-clear.service" + "systemd-bootctl@.service" + "systemd-bootctl.socket" + ]; +} \ No newline at end of file