# hacc nixfiles welcome to hacc nixfiles (haccfiles). this is the code describing our nix-based infrastructure. ## structure - `default.nix`: Entrypoint to the config - `common/`: configuration common to all hosts - `desktop/`: desktop-relevant communication - `modules/`: home-grown modules for hacc-specific services - `nix/`: sources files, managed with niv - `pkgs/`: packages we built and don't want to upstream ## working with the haccfiles deploy: ``` shell nix build -f . deploy.$hostname && ./result switch ``` `$hostname` can be replaced with any hostname or group ## committing to haccfiles - split up commits, every commit is one atomic change - e.g. no big "did some changes" but instead "updated service x", "updated service y", "update service z" - follow the commit format: "$prefix$place: $change" - prefix: one of fixup, nothing - place: one of "modules/$module", "$hostname/service", "common/($place)", "pkgs/$pkgs" or "sources" - change: describe your change, don't go over the character limit where git starts hiding/wrapping - Exception: autogenerated messages (merge commits, reverts, etc)