docs: Update readme for how to build artifacts
This commit is contained in:
committed by
Hunter Halloran
parent
6498e7fd52
commit
1412529b0f
28
README.md
28
README.md
@@ -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
|
||||
|
||||
19
flake.nix
19
flake.nix
@@ -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);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user