forked from hacc/haccfiles
Nixfiles, for hacc.
stuebinm
0882960b9a
Things to note: - DO NOT DEPLOY THIS - use nixos-container for testing instead I've played around with nextcloud on NixOS, essentially following the examples given in the NixOS manual and searching through some of the other options. Nextcloud itself works fine with this setup, as does its database (postgres), and most of the other basic stuff. However, the nextcloud module as it currently exists appears to be fairly limited and incomplete in its capabilities, e.g. lack of options for redis or multiple php pools; in general, it lacks extraOptions-hooks. For redis the documentation even explicitely notes (in caching.redis) that redis requires additional options set in `config.php`, but it appears these cannot currently be set using nix. I guess we have as options: - I missed something and it does in fact work - we can wait for later versions; looks like 21.03 will add at least *some* more - we can fork the module and add options ourselves - we can configure it nextcloud by manually editing `config.php`, as it's not actually inside the nix store but at /var/lib/nextcloud/config (veto) See comments for additional notes and todos. |
||
---|---|---|
common | ||
desktop | ||
hosts | ||
modules | ||
nix | ||
pkgs | ||
.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 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)