Installation
First add provision-nix to your flake inputs.
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
provision-nix.url = "github:kraftnix/provision-nix";
provision-nix.inputs.nixpkgs.follows = "nixpkgs";
};
}
Flake Modules
Flake integration is provided via flake-parts modules under flakeModules.
More info for provided flakes here.
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
provision-nix.url = "github:kraftnix/provision-nix";
provision-nix.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs @ { self, flake-parts, ... }:
flake-parts.lib.mkFlake {inherit inputs;} {
# selectively import
imports = [
inputs.provision-nix.flakeModules.channels
inputs.provision-nix.flakeModules.hosts
inputs.provision-nix.flakeModules.scripts
];
# or import all
# imports = inputs.provision-nix.flakeModulesAll
systems = ["x86_64-linux" "aarch64-linux"];
};
}
NixOS Modules
NixOS Modules are provided under nixosModules.
More info for provided NixOS integrations here.
Use a single module:
{ inputs, ... }:
{
imports = [ inputs.provision-nix.nixosModules.scripts ];
provision.scripts.enable = true;
provision.scripts.scripts.top-five.text = "ps -l | sort-by cpu -r | take 5";
}
Alternatively, you can import all nixos modules provided:
{ inputs, ... }:
{
imports = inputs.provision-nix.nixosModulesAll;
provision.core.enable = true;
networking.nftables.gen.enable = true;
}
Home Manager Modules
A single home-manager module is provided by for the Scripts Integration
Other Outputs
Some library functions are provided at lib.
Disko profiles can be directly imported from disko, however using the nixosModule integration is suggested.
See Disko Integration Docs for more information.