utility functions#
_utils.mkVhost#
attrset -> attrset
make a virtual host with sensible defaults
pass in a set to override the defaults.
Example#
services.nginx.virtualHosts."balls.example" = _utils.mkVhost {};
_utils.mkSimpleProxy#
attrset -> attrset
make a simple reverse proxy
takes a set:
{
port,
protocol ? "http",
location ? "/",
websockets ? false,
extraConfig ? {}
}
It is recommended to override/add attributes with extraConfig to
preserve defaults.
Items in extraConfig are merged verbatim to the base attrset with defaults.
They are overridden based on their order.
_utils.genSecrets#
namespace[str] -> files[list[str]] -> value[attrset] -> attrset
a
generate an attrset to be passed into sops.secrets.
Example#
{ _utils, ... }:
let
secrets = [
"secure_secret"
# this is a directory structure, so secrets will be stored as a file in /run/secrets/service/test/secret.
"service/test/secret"
];
in {
sops.secrets = _utils.genSecrets "" secrets {}; # it's recommended to use a namespace, but having none is still fine.
# -> sops.secrets."secure_secret" = {};
# sops.secrets."service/test/secret" = {};
sops.secrets = _utils.genSecrets "balls" ["balls_secret"] {owner = "balls"};
# -> sops.secrets."balls/balls_secret" = {owner = "balls";};
}
See https://github.com/soopyc/nix-on-koumakan/blob/b7983776143c15c91df69ef34ba4264a22047ec6/systems/koumakan/services/fedivese/akkoma.nix#L8-L34 for a more extensive example