59 lines
1.7 KiB
Nix
59 lines
1.7 KiB
Nix
{ lib, ... }:
|
|
|
|
with lib;
|
|
|
|
{
|
|
options.numbus = {
|
|
owner = {
|
|
type = type.str;
|
|
example = "Alex";
|
|
default = "Numbus";
|
|
description = "The name of the person who owns this server";
|
|
};
|
|
language = {
|
|
type = type.str;
|
|
example = "FR";
|
|
default = "FR";
|
|
description = "The language for this server";
|
|
};
|
|
locale = {
|
|
type = type.str;
|
|
example = "fr_FR";
|
|
default = "fr_FR";
|
|
description = "The default locale for this server";
|
|
};
|
|
|
|
services = {
|
|
domain = mkOption {
|
|
type = types.str;
|
|
example = "numbus.eu";
|
|
description = "The root domain name (i.e. example.com) that your services will use";
|
|
};
|
|
dns = mkOption {
|
|
type = types.enum [ "pi-hole" "adguard" ];
|
|
default = "pi-hole";
|
|
example = "pi-hole";
|
|
description = "The preferred DNS resolver service (pi-hole or adguard) that other services should depend on";
|
|
};
|
|
};
|
|
traefikDynamicConfigDir = mkOption {
|
|
type = types.str;
|
|
default = "/etc/traefik/rules";
|
|
example = "/etc/traefik/rules";
|
|
description = "! Choosing a directory outside of /etc/ will break things ! The directory where Traefik's dynamic configuration files will be stored";
|
|
};
|
|
|
|
email = {
|
|
administratorEmail = mkOption {
|
|
type = types.str;
|
|
example = "admin@your-domain.com";
|
|
description = "The email that will be used to send critical notifications such as hardware failures, services errors, ACME updates, etc";
|
|
};
|
|
userEmail = mkOption {
|
|
type = types.str;
|
|
example = "user@your-domain.com";
|
|
description = "The email that will be used by services to send notifications";
|
|
};
|
|
};
|
|
};
|
|
} |