(contains info about how groups work)
|2 months ago|
|common||2 months ago|
|desktop||11 months ago|
|hosts||2 months ago|
|modules||2 months ago|
|nix||2 months ago|
|pkgs||2 months ago|
|services||2 months ago|
|websites||2 months ago|
|.gitignore||2 years ago|
|.gitlab-ci.yml||9 months ago|
|README.md||11 months ago|
|default.nix||1 year ago|
welcome to hacc nixfiles (haccfiles). this is the code describing our nix-based infrastructure.
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
hosts/: configuration.nix per host
services/: all services we run; imported in appropriate host config
working with the haccfiles
nix build -f . deploy.$hostname && ./result switch
$hostname can be replaced with any hostname or group
I don't want to build this long dependency / want a cached version!
If it's still available on parsons from a previous deploy, do:
nix copy --from ssh://parsons /nix/store/...
Note: don't just copy the .drv file (which Nix complains about if it can't
build something), that's just the description of how to build it! If you
don't know the actual outpath, look in the .drv file (should start with
Derive([("out","[the path you want]"...)
committing to haccfiles
- Golden Rule: DO NOT COMMIT TO MAIN
- exceptions apply, if you are not sure where to commit, don't commit to main
- 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)