This commit does a lot of things at ones:
* introduce a temporary logo to unbreak the image reference in the docs
* introduce a getting started documentation
* introduce a proper user guide. It's still missing a lot of things.
* rename the various categories of modules to be clearer.
* complete the missing module references.
* add a tiny FAQ
After #80, the modules are exposed as paths, and Nix doesn't seem to
complain anymore.
This is probably a change in Nix itself. But that means we don't need
those `_file` anymore.
One drawback of flake-parts is that it makes the wiring of the flake
outputs less easy to follow. With the new version the user can open the
flake.nix and pretty easily follow how things are put together.
Another drawback is that it makes the flake dependency tree larger. We
want to limit how much baggage srvos is adding when added as an input.
We introduce a few new mechanism in this commit:
flake-parts is used to wire things together.
./all-parts.nix looks for and imports all flake-part.nix files. This
makes it easier to co-locate the parts next to the targeted code.
We introduce a `modules` flake output to hold all modules. For example
instead of `nixosModules`, use `modules.nixos`.
In ./nixos we enforce a 1:1 mapping between the module filenames and the
attribute. For example ./nixos/mixins/telegraf.nix will translate to
`modules.nixos.mixins-telegraf`.
flake-compat ensures that the default.nix and flake.nix are in sync and have the same outputs.