30 lines
1.3 KiB
Org Mode

#+TITLE: NixOS Modules
#+AUTHOR: spacefrogg
#+startup: showall
* Modules
** tinydns
A replacement for the upstream tinydns module. This module extends the service
in an incompatible way. You instantiate a service by adding an attribute
=<ipv4-address>= under =services.tinydns=. This flake comes with an extended
=lib= attribute, which you must use in your nixos configuration (e.g. in the
call to =nixpkgs#lib.nixosSystem=) to have special functions under =lib.tinydns=
available that create tinydns records from functions and arguments. See the
module documentation for currently available functions.
* Development
This comes with a self-contained redo toolchain to help in working with the
flake. It basically deploys any input flake into the =tmp= directory for easier
redo targets under =tmp/= come in three kinds:
- =clean= :: will remove all build products under =tmp/=
- =<flake>= :: will make sure a store path to =<flake>= exists and puts an
indirect root into =tmp/<flake>=.
- =<flake>.rw= :: will make sure a store path to =<flake>= exists and will copy
its contents to =tmp/.<flake>.rw= and will link to it from =tmp/<flake>.rw=. (Rationale: On Linux, directories cannot denote reliable
targets due to their non-trivial relation to modification time.)