Overview
System type
Bootable ISO image for NixOS installation
Most of the code has been refactored out into the iso module. The lilith directory still exists for specific overrides or additional ISO configurations.
ISO module architecture
The ISO system is built from multiple modular components:Module responsibilities
- boot.nix: Configures boot loader settings for the live environment
- console.nix: Sets up TTY and console configurations
- fixes.nix: Applies patches and fixes for known issues
- image.nix: Defines the ISO image structure and contents
- networking.nix: Configures network access and connectivity
- nix.nix: Configures the Nix package manager itself
- nixpkgs.nix: Handles nixpkgs settings like unfree package support
- programs.nix: Includes essential programs for installation
- space.nix: Implements space-saving optimizations
Image configuration
The ISO uses a consistent naming scheme and compression:The ISO uses maximum zstd compression (level 19) to minimize file size, trading build time for smaller downloads.
ISO contents
The ISO image includes:Embedded flake
/flake, allowing you to rebuild the system without needing to clone the repository first. This speeds up the installation process significantly.
Default users
The ISO provides two default users:
nixos and root, both with no passwords. You can set passwords after booting into the live environment.Building ISOs
You can create custom ISOs by:- Adding new configurations to the
systems/lilith/directory - Using the iso module with custom overrides
- Building with
nix buildtargeting the ISO output
The modular design allows you to create multiple ISOs with different configurations while sharing common settings.
Related systems
- Valkyrie - WSL2 development instance
- Hephaestus - UpCloud server