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
|
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
|
## Configuration Guide
|
||||||
|
|
||||||
### Adding a New User
|
### Adding a New User
|
||||||
|
|||||||
19
flake.nix
19
flake.nix
@@ -58,17 +58,26 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
hosts = import ./hosts { inherit inputs; };
|
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
|
in
|
||||||
{
|
{
|
||||||
# Formatter for 'nix fmt'
|
# 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
|
# Generate NixOS configurations from hosts/default.nix
|
||||||
nixosConfigurations = hosts.nixosConfigurations;
|
nixosConfigurations = hosts.nixosConfigurations;
|
||||||
|
|
||||||
packages.${system} = import ./artifacts.nix {
|
# Expose artifacts to all systems, but they are always built for x86_64-linux
|
||||||
inherit inputs hosts self system;
|
packages = forAllSystems (_: artifacts);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user