forked from hacc/haccfiles
Nixfiles, for hacc.
stuebinm
c2c0bd366a
This simply updates nixpkgs to 21.11 (along with a general update of other sources), then follows the hints given out in the build process until everything (on parsons) ran through fine. Some things to note: - syncthing's declarative config is gone. Instead, declarative and non-declarative configuration can now be mixed, but with `overrideDevices` set to true, it _should_ ignore non-declarative settings and basically behave the same as before (or at least that's how I understood the documentation on that) - some postfix options now require a lib.mkForce, since the mail module also wants to set them — we should probably look into if the mail module has nicer ways of handling our settings now (which I didn't do) - we no longer import the vaultwarden module from unstable, since it's included in nixos 21.11 as-is. We _do_ still import the vaultwarden package from unstable, since downgrading sounds like a bad idea. - nix build will print a warning that `literalExample` is now depricated, but we don't seem to use that — I guess at some point we'll have to search through our sources if it doesn't go away This was not yet deployed, and should probably considered a work-in-progress. Building Nixda currently fails decklink seems to have disappeared. |
||
---|---|---|
common | ||
desktop | ||
hosts | ||
modules | ||
nix | ||
pkgs | ||
services | ||
websites | ||
.gitignore | ||
.gitlab-ci.yml | ||
default.nix | ||
README.md |
hacc nixfiles
welcome to hacc nixfiles (haccfiles). this is the code describing our nix-based infrastructure.
structure
default.nix
: Entrypoint to the configcommon/
: configuration common to all hostsdesktop/
: desktop-relevant communicationmodules/
: home-grown modules for hacc-specific servicesnix/
: sources files, managed with nivpkgs/
: packages we built and don't want to upstreamhosts/
: configuration.nix per hostservices/
: all services we run; imported in appropriate host config
working with the haccfiles
deploy:
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)