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/lib and core/effects, one section per file, generated from their doc-comments. Covers every function exercised by the project's nix-unit tests.
  • Data model -- the typed data model in core/lib/data-model.nix and the resources it builds on (garage, network, secrets, authelia, otel, nixos-module). Covers the request/policy resource pattern and the data model's own options.
  • Hosting resources -- the concrete request options 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.panel NixOS options.
  • API -- the HTTP and Centrifugo pub/sub backend that runs deployments and reports progress, and its services.fediversity-api NixOS 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.