docs: Update readme for how to build artifacts

This commit is contained in:
UGA Innovation Factory
2025-12-10 13:38:50 -05:00
committed by Hunter Halloran
parent 6498e7fd52
commit 1412529b0f
2 changed files with 42 additions and 5 deletions

View File

@@ -50,6 +50,34 @@ To update the lockfile (nixpkgs, home-manager versions, etc.):
nix flake update
```
## Building Artifacts (ISOs, LXC, Proxmox)
You can generate installation media and virtual machine images directly from this flake.
### Installer ISOs
To build an auto-install ISO for a specific host (e.g., `nix-laptop1`):
```bash
nix build .#installer-iso-nix-laptop1
```
The resulting ISO will be in `result/iso/`.
### LXC / Proxmox Images
For hosts configured as containers (e.g., `nix-lxc1`), you can build LXC tarballs or Proxmox VMA archives:
```bash
# Build LXC tarball
nix build .#lxc-nix-lxc1
# Build Proxmox VMA
nix build .#proxmox-nix-lxc1
```
## Configuration Guide
### Adding a New User

View File

@@ -58,17 +58,26 @@
}:
let
hosts = import ./hosts { inherit inputs; };
system = "x86_64-linux";
linuxSystem = "x86_64-linux";
artifacts = import ./artifacts.nix {
inherit inputs hosts self;
system = linuxSystem;
};
forAllSystems = nixpkgs.lib.genAttrs [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
in
{
# Formatter for 'nix fmt'
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
# Generate NixOS configurations from hosts/default.nix
nixosConfigurations = hosts.nixosConfigurations;
packages.${system} = import ./artifacts.nix {
inherit inputs hosts self system;
};
# Expose artifacts to all systems, but they are always built for x86_64-linux
packages = forAllSystems (_: artifacts);
};
}