nix lernt man nicht, man gewöhnt sich nur dran
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
hexchen cf5062adfd sources: update nixpkgs to 21.05 1 year ago
common sources: update nixpkgs to 21.05 1 year ago
desktop remove hexchen from the project 2 years ago
hosts mail: emergency alias 2 years ago
modules sources: update nixpkgs to 21.05 1 year ago
nix sources: update nixpkgs to 21.05 1 year ago
pkgs sources: update nixpkgs to 21.05 1 year ago
.gitignore repo: add vim swapfiles to gitignore 2 years ago
.gitlab-ci.yml ci: split up pipelines by host 2 years ago
README.md readme: add golden commit rule 2 years ago
default.nix sources: update nixpkgs to 21.05 1 year ago

README.md

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:

nix build -f . deploy.$hostname && ./result switch

$hostname can be replaced with any hostname or group

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)