Nix Recipes¶
Recipes for NixOS and nix-darwin¶
Each recipe is a self-contained module, overlay, or package paired with a why-and-trap writeup: not just what the code does, but the failure it prevents and the sharp edge that made it necessary. No hostnames, addresses, or secrets — drop any recipe straight into your own configuration.
Categories¶
-
Importable NixOS modules — services, hardening, setup building blocks.
-
Timer- and event-driven system behaviors that maintain state over time.
-
Package-set overlays: upstream fixes, forks, and platform patches.
-
Standalone derivations — CLIs, Python tools, and agenix helpers.
-
Small reusable Nix functions and patterns.
How it's organized¶
Recipes fall into five families. Everything is a Nix flake output, so a recipe
is nix flake-consumable directly:
{
inputs.recipes.url = "github:eordano/recipes";
# ... then, in a host:
imports = [ inputs.recipes.nixosModules.nixos-hardening-tiers ];
nixpkgs.overlays = [ inputs.recipes.overlays.caddy-override-keep-withplugins ];
}
- Modules — importable
nixosModules.<name>; opt-in via their own options. - Behaviors — modules too, but timer/event-driven ones that maintain state.
- Overlays —
overlays.<name>; upstream fixes, forks, platform patches. - Packages —
pkgs.callPackage ./packages/<name> { }derivations. - Library — small reusable Nix functions.