Reusable Nix library plus a small set of public host configurations for NixOS, standalone Home Manager on Linux, and nix-darwin.
This repo is opinionated about a few things:
- shared reusable configuration lives in
modules/ - repo-local host composition roots live in
hosts/ flake.nixis generated frommodules/flake-file.nix- downstream consumers should reuse exported modules, profiles, and flake-file wiring instead of copying contracts by hand
- Architecture and repo layout:
docs/architecture.md - Adding a host:
docs/adding-a-host.md - Adding a role:
docs/adding-a-role.md - Validation expectations:
docs/validation.md - Secret-management guidance:
docs/secret-management.md - Downstream template and layering:
docs/downstream-template.md
flakeModules.default: reusable module tree plus this repo's host importsflakeModules.downstream-flake-file: reusable downstreamflake-file.inputs.*contract frommodules/_internal/flake-file-inputs/default.nixtemplates.default: starter downstream flake layered on top of this library
- Regenerate the generated flake:
nix run .#write-flake - Rebuild the current machine:
just rebuild - Run the pinned frontends directly:
nix run .#nh -- ...nix run .#home-manager -- ...nix run .#darwin -- ...
- Standalone Home Manager hosts use
configurations.home."user@host"naming. - The shared NVIDIA contract for standalone Home Manager lives under
configurations.home.<name>.nvidiaand expects a host-local JSON pin file. - Downstream
flake-fileconsumers should importinputs.dendritic-lib.flakeModules.downstream-flake-filealongsideinputs.flake-file.flakeModules.default. - Zoom is installed through the Homebrew cask on macOS and
pkgs.zoom-uson Linux. The macOS cask avoids the ad-hoc-signed Nix package invalidating hash-bound screen-recording permissions after upgrades. When migrating, quit Zoom beforejust rebuild, then launch/Applications/zoom.us.appand grant screen-recording access again; remove stale Home Manager Zoom entries from Privacy & Security if necessary.