Fediversity
This site documents the Nix parts of Fediversity, rendered from the project's own module options and function doc-comments. Each subject below is a page in its own right, with its option reference rendered inline.
Subjects
- Flake attributes -- the attributes the flake exposes (packages, checks, NixOS configurations, apps), generated from the flake on every build.
- Utility functions -- the helper functions under
core/libandcore/effects, one section per file, generated from their doc-comments. Covers every function exercised by the project'snix-unittests. - Data model -- the typed data model in
core/lib/data-model.nixand the resources it builds on (garage, network, secrets, authelia, otel, nixos-module). Covers therequest/policyresource pattern and the data model's own options. - Hosting resources -- the concrete
requestoptions each resource module declares (e.g. garage's buckets and access keys). - Operator configuration -- the operator-facing configuration schema, the same tree that drives the frontend JSON schema.
The operator-facing web frontend and the deployment backend have their own documentation sites, built from their respective components:
- Panel
-- the Django web frontend operators use to configure and trigger
deployments, and its
services.panelNixOS options. - API
-- the HTTP and Centrifugo pub/sub backend that runs deployments and reports
progress, and its
services.fediversity-apiNixOS options. Its wire surface is also browsable as Swagger UI (HTTP) and AsyncAPI (Centrifugo pub/sub).
Worked examples
For end-to-end examples of how the data model is exercised -- defining a
resource, requesting it from a component, and resolving it through an
environment -- see core/lib/data-model-test.nix.